2011-09-05 247 views
0

我开发了一款游戏,当用户触摸一张卡片时,它会慢慢翻转,数字会显示出来。 为此,我可以使用哪些cocos2d API?卡片游戏中的卡片翻转

或者我应该创建框架指示翻转动画?

回答

1

对于掷查看U能做到这样,

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.6]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES]; 
[UIView commitAnimations]; 

做动画只需创建一个标签,并将其添加为子视图UIView的之前。将文本设置为要在动画之后显示的数字。隐藏此标签。在动画的结尾处,在commitAnimations之后,将标签的隐藏属性设置为NO。你会实现你想要的动画风格,我猜...希望这可以帮助....快乐编码... :)

+0

感谢您的回答。我用2个UIImageViews实现了它的实现,并且它正在工作。我将图像视图放在彼此的顶部,当我点击活动卡片时,它会翻转并显示另一张卡片(活动卡片的隐藏属性将显示为YES)。但有一个问题。一个转换横跨360度翻转,所以我看到活动卡再次进入隐藏状态之前。你有我的问题?所以过渡并不是很顺利。 – tguclu

+0

可以发表一些你的代码....我想我可以帮助... – booleanBoy

+0

https://rapidshare.com/files/530484171/FlipCard.zip – tguclu

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 

基本上运行CCActions对给定时间两个场景的序列。使用球坐标,动作围绕屏幕中心围绕相机运动。

1

GeekGameBoard是一个mac应用程序,它有一堆游戏。它还有一个处理翻转等的卡类。希望有助于!

+0

嗨,感谢您的提问。我正在检查它 – tguclu

0

我做cocs2d-的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));