我开发了一款游戏,当用户触摸卡片时,它会慢慢翻转,数字会显示出来。 为此,我可以使用什么cocos2d API?
或者我应该创建带有指示翻转的帧的动画吗?
答案 0 :(得分:2)
您可以创建与CCTransitionFlipX
类似的内容。但是,不是使用CCScene,而是让它在您的卡节点(精灵)上运行。
以下是此类的实现(CCTransition.m):
//
// FlipX Transition
//
@implementation CCTransitionFlipX
-(void) onEnter
{
[super onEnter];
CCActionInterval *inA, *outA;
[inScene_ setVisible: NO];
float inDeltaZ, inAngleZ;
float outDeltaZ, outAngleZ;
if( orientation == kOrientationRightOver ) {
inDeltaZ = 90;
inAngleZ = 270;
outDeltaZ = 90;
outAngleZ = 0;
} else {
inDeltaZ = -90;
inAngleZ = 90;
outDeltaZ = -90;
outAngleZ = 0;
}
inA = [CCSequence actions:
[CCDelayTime actionWithDuration:duration_/2],
[CCShow action],
[CCOrbitCamera actionWithDuration: duration_/2 radius: 1 deltaRadius:0 angleZ:inAngleZ deltaAngleZ:inDeltaZ angleX:0 deltaAngleX:0],
[CCCallFunc actionWithTarget:self selector:@selector(finish)],
nil ];
outA = [CCSequence actions:
[CCOrbitCamera actionWithDuration: duration_/2 radius: 1 deltaRadius:0 angleZ:outAngleZ deltaAngleZ:outDeltaZ angleX:0 deltaAngleX:0],
[CCHide action],
[CCDelayTime actionWithDuration:duration_/2],
nil ];
[inScene_ runAction: inA];
[outScene_ runAction: outA];
}
@end
基本上它在给定持续时间的两个场景上运行一系列CCAction。 CCOrbitCamera
动作使用球面坐标围绕屏幕中心运行相机。
答案 1 :(得分:1)
对于翻转视图,你可以这样做,
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.6];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[UIView commitAnimations];
在做动画之前,只需创建一个标签并将其作为子视图添加到UIView中。将文本设置为动画后要显示的数字。隐藏此标签。在commitAnimations之后的动画结束时,只需将标签的隐藏属性设置为NO即可。你会实现你想要的动画风格,我想..希望这有帮助....快乐编码...... :)
答案 2 :(得分:1)
GeekGameBoard是一个mac应用程序,里面有很多游戏。它还有一个处理翻转等的卡片类。希望有帮助!
答案 3 :(得分:0)
我在cocos2d-android-1中这样做
CCSprite sprite=CCSprite.sprite("icon.png");
CCIntervalAction a = (CCIntervalAction)CCOrbitCamera.action(2, 1, 0, 0, 360, 0, 0);
addChild(sprite,1);
sprite.runAction(CCRepeatForever.action(a));