2011-09-05 105 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));