2011-09-05 4 views
0

나는 사용자가 카드를 건 드리면 천천히 뒤집어 질 것이고 번호가 나타날 것입니다. 그 목적을 위해 어떤 cocos2d API를 사용할 수 있습니까?카드 게임에서 카드를 뒤집기

아니면 플립을 나타내는 프레임이있는 애니메이션을 만들어야합니까?

답변

1

,

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

. 텍스트를 애니메이션 다음에 표시하려는 번호로 설정합니다.이 라벨을 숨 깁니다. 애니메이션의 끝인 commitAnimations가 끝나면 레이블의 숨겨진 속성을 NO로 설정하면됩니다. 당신은 원하는 애니메이션 스타일을 달성 할 것입니다. 아마도 .. 도움이 되었으면합니다. 해피 코딩 ... :)

+0

감사에서 할. 2 UIImageViews 구현을했는데 그것은 작동합니다. 이미지 뷰를 서로 위에 놓았고 활성 카드를 클릭하면 해당 카드가 뒤집히고 다른 카드가 표시됩니다 (활성 카드의 숨겨진 속성은 YES로 변경됩니다). 그러나 문제가 있습니다. 전환이 360도 플립에 걸쳐 있으므로 숨겨진 상태가되기 전에 다시 활성 카드가 표시됩니다. 내 문제가 있니? 그래서 전이는 매우 부드럽 지 않습니다. – tguclu

+0

UR 코드를 게시 할 수 있습니다 .... 그때 내가 도울 수 있다고 생각 ... – booleanBoy

+0

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

2

CCTransitionFlipX과 비슷한 것을 만들 수 있습니다. 하지만 CCScene 대신 카드 노드 (스프라이트)에서 작동하도록하십시오. 기본적으로 지정된 기간이 두 장면에 CCActions의 순서를 실행

// 
// 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 

: 여기

이 클래스 (CCTransition.m)의 구현입니다. CCOrbitCamera 동작은 구면 좌표를 사용하여 화면의 중심을 중심으로 카메라를 선회합니다. 단지 레이블을 만들고있는 UIView에 하위 뷰로 추가 애니메이션을하기 전에 u는 다음과 같이 그것을 할 수있는 뷰를 뒤집기 위해

1

GeekGameBoard은 수많은 게임이 포함 된 Mac 응용 프로그램입니다. 또한 플립 등을 처리하는 카드 클래스도 있습니다. 희망 그 도움!

+0

안녕하세요, 정보 주셔서 감사합니다. 나는 그것을 검사하고있다. – tguclu

0

나는 대답에 대한 cocs2d - - 안드로이드 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)); 
관련 문제