首页 > 代码库 > Cocos2d-x实现简易翻牌效果
Cocos2d-x实现简易翻牌效果
翻牌效果网上找了好多,复杂点的有自己重写一个sprite类来实现,简单的就利用引擎自带的动作CCOrbitCamera来实现,但是存在一些问题,图片旋转之后变反了。
我在用的只是一个简单的翻牌效果,点击之后图片翻牌,翻到一半之后图片切换到另外一面,再继续剩下的旋转。
注:下面的代码只能翻牌一次,第二次就会乱了,当然,我需要的也只是翻牌一次而已。
简单的加载图片:
pSprite = CCSprite::create("iv_card_1.png"); pSprite->setPosition( ccp(300,300) ); this->addChild(pSprite, 0);图片点击之后进行翻牌动作:
void HelloWorld::menuCloseCallback(CCObject* pSender) { //===旋转的时间,起始半径,半径差,起始z角,旋转z角差,起始x角,旋转x角差=== CCSequence* action = CCSequence::create( CCOrbitCamera::create(1,1, 0, 0, 90, 0, 0) ,CCCallFunc::create(this , callfunc_selector(HelloWorld::objectReset) ) ,CCOrbitCamera::create(1,1, 0, -90, -90, 0, 0) ,NULL); pSprite->runAction(action); } void HelloWorld::objectReset() { //CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("iv_card_2<span style="font-family: Arial, Helvetica, sans-serif;">.png</span><span style="font-family: Arial, Helvetica, sans-serif;">");</span> //pSprite->setTexture(texture); CCSprite* p = CCSprite::create("iv_card_2.png"); pSprite->setTexture(p->getTexture()); //===可以增加正面的元素====== CCSprite* p2 = CCSprite::create("public_diamond_icon.png"); pSprite->addChild(p2); p2->setPosition(ccp(pSprite->getContentSize().width/2,pSprite->getContentSize().height/2+p2->getContentSize().height/2)); //================= pSprite->setScaleX(-1); }
素材图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。