翻牌效果可以使用CCOrbitCamera实现,这是一个CCAction,使精灵视角按照球面坐标轨迹 围绕屏幕中心进行旋转。【关于CCOrbitCamera】
翻牌需要两个精灵,一个表示牌的正面,一个表示牌的背面。当执行翻牌动作的时候:初始化正面的角度为向左90度、背面为0度——背面向右旋转90度——正面向右旋转90度,这就实现了一个翻牌的效果。
api说明:
t:动作时长
radius:球的半径
deltaRadius:球半径偏移量
angleZ:开始时z轴角度
deltaAngleZ:z轴角度偏移量
angleX:开始时x轴角度
deltaAngleX:x轴角度偏移量
static CCOrbitCamera* create(float t, float radius, float deltaRadius, float angleZ, float deltaAngleZ, float angleX, float deltaAngleX);
示例代码:
CCSize size = CCDirector::sharedDirector()->getVisibleSize(); //创建PokerSrpite,指定正面和背面所使用的图片路径 poker = PokerSprite::create("front.png", "back.png"); //创建PokerSrpite,指定正面和背面所使用的CCSprite //CCSprite* front = CCSprite::create("front.png") //front->addChild(img); //poker = PokerSprite::create(front, CCSprite::create("back.png")); // 设置位置 poker->setPosition(ccp(size.width0.5, size.height0.5)); // 添加到Layer addChild(poker); //调用翻牌动作 poker->open();
效果图
项目地址:https://coding.net/u/linchaolong/p/Cocos2d-x_PokerSprite/git