листать карты в карточной игре - PullRequest
0 голосов
/ 06 сентября 2011

Я разрабатываю игру, в которой, когда пользователь касается карты, она будет медленно переворачиваться, и будет отображаться число.Для этой цели какой API-интерфейс cocos2d можно использовать?

Или я должен создать анимацию с кадрами, указывающими на переворот?

Ответы [ 4 ]

2 голосов
/ 06 сентября 2011

Вы можете создать что-то похожее на 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.на обеих сценах с заданной продолжительностью.Действие CCOrbitCamera вращает камеру вокруг центра экрана, используя сферические координаты.

1 голос
/ 06 сентября 2011

GeekGameBoard - это приложение для Mac, в котором есть множество игр.Он также имеет класс карты, который обрабатывает сальто и тому подобное.Надеюсь, что поможет!

1 голос
/ 06 сентября 2011

Для переключения вида вы можете сделать это следующим образом:

[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 голосов
/ 02 ноября 2012

я делаю в 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));
...