Как сделать элементы управления похожими на flappy bird в cocos2d

Я делаю игру в cocos 2d v2, и мне было интересно, как сделать мои элементы управления похожими на flappy bird, чтобы при нажатии она медленно поднималась, а когда отпускала, она падала.

Я пытаюсь использовать ccTouchesBegan и ccTouchesEnded, но это работает не совсем правильно. Вот что у меня так далеко:

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    Y += 3; 
   [self schedule:@selector(movePlayer:)interval:1.0f/60.0f];
}

-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    Y -= 2; 
   [self schedule:@selector(movePlayer:)interval:1.0f/60.0f];
}

-(void)movePlayer:(ccTime)dt{ 
    player.position = ccp(player.position.x, player.position.y + Y);
}

Переменная Y - это просто int, инициализированный 0, установленный в моем заголовочном файле.

3 ответа

Решение

Попробуйте этот урок:

https://www.makegameswith.us/gamernews/369/build-your-own-flappy-bird-with-spritebuilder-and

Я не знаю, есть ли у вас доступ к SpriteBuilder, используемому в этом руководстве, но это помогло мне создать очень аутентично выглядящий клон Flappy Bird.

Учтите, что Flappy использует физику, поэтому вы должны включить ее, прежде чем продолжить программирование.

Во-вторых, вам нужно включить сенсорный внутри didLoadFromCCB

self.userInteractionEnabled = TRUE;

Тогда вы можете использовать applyImpulse внутри ccTouchesBegan

- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
[_hero.physicsBody applyImpulse:ccp(0, 400.f)];
}

Я играл в игру flappy bird like, не используя физику и просто используя cocos2d. Кривая CCbezier помогла мне добиться того же эффекта, что и у летучей птицы. Его простая реализация.

Другие вопросы по тегам