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);
}


素材图片

   





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值