2014-11-30 2 views
0

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

Для движения я использую NSTimers, которые отлично работают. Проблема возникает, когда я добавляю звуковые эффекты. Я использую AVAudioPlayers для этого, и это немного отстает в игре. Я прокомментировал их, чтобы узнать, вызвали ли они проблему, и, похоже, это так. Я оглянулся здесь, на Stack Overflow и на других сайтах, но я не могу найти хороший ответ. Любая помощь ценится!

Код:

- (void)CharacterMoving { 

if (CGRectIntersectsRect(Character.frame, Rock.frame)) { 

    [self performSelector:@selector(GameOver) withObject:nil afterDelay:0.35]; 

    [Thousand play]; 
} 

- (IBAction)Start:(id)sender { 

NSString *soundEffect=[[NSBundle mainBundle]pathForResource:@"1000" ofType:@"mp3"]; 
Thousand=[[AVAudioPlayer alloc]initWithContentsOfURL: [NSURL fileURLWithPath:soundEffect] error:NULL]; 
Thousand.numberOfLoops=-0; 
} 
+0

Любой код, показывающий, как настроить и воспроизводить звук с 'AVAudioPlayer' также будут оценены. – Unheilig

+0

@Unheilig Now :) –

+0

«Для движения я использую NSTimers, которые отлично работают» Нет, они этого не делают. Это самый худший способ создать анимированное движение. Используйте фактическую анимацию (чтобы вы использовали встроенный сервер анимации) или переключитесь на Sprite Kit. – matt

ответ

Смежные вопросы