ИграИгры звучат без остановки, когда изображение выходит из экрана (игра должна заканчиваться). Это показывает, что метод gameOver продолжает вызываться методом обновления, даже если игра завершена и отображается меню. Надеюсь, вы понимаете, что происходит. Что я могу сделать, чтобы остановить это?ИграНовый звук воспроизводится без остановок
Редактировать: после добавления && !gameEnds
(см. Метод обновления ниже) метод gameOver
вызывается дважды, мне интересно, почему из всех номеров он называется два раза.
-(void)gameOver
{
self.gameEnds = YES;
// Play the gameOver sound
[self runAction:[SKAction playSoundFileNamed:@"gameOver.caf" waitForCompletion:NO]];
[mainLayer enumerateChildNodesWithName:@"Board" usingBlock:^(SKNode *node, BOOL *stop) {
[node runAction:[SKAction fadeOutWithDuration:1.0f]];
}];
[mainLayer enumerateChildNodesWithName:@"Time" usingBlock:^(SKNode *node, BOOL *stop) {
[node runAction:[SKAction fadeOutWithDuration:1.0f]];
}];
// showing the menu
[menu show];
}
Этот метод подсчитывает количество отводов (приращения self.counter, когда пользователь нажимает на экран)
-(void)callNextImage: (UITapGestureRecognizer *)recognizer
{
self.counter++;
}
метод GameOver должен быть вызван, когда изображение покидает экран и количество отводов менее 4, и этот метод представляется релевантным для этого
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
if (self.counter < 4
&& (image.position.y > self.frame.size.height + 75.5f) && !gameEnds) {
[self gameOver];
}
}
Вы пытались использовать отладчик? – matt
@matt: Я сделал, это показывает, что метод gameOver вызывается снова и снова –
Отлично! Но это также показывает, что вы снова и снова вызываете метод 'gameOver'. Таким образом, вы можете легко обнаружить причину проблемы. – matt