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


person ErikOhlin12    schedule 25.03.2014    source источник


Ответы (3)


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

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

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

person camyoung54    schedule 25.03.2014

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

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

self.userInteractionEnabled = TRUE;

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

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

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

person Sandeep R    schedule 08.05.2014