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