Вопрос

Я пытаюсь воспроизвести звук на touchEnded, но у меня возникла проблема.Существует несколько объектов, которые перемещаются, поэтому, если приведенный ниже код выполняется при перемещении любого объекта, он постоянно воспроизводит звук.Как мне сыграть только один раз?

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

    if(CGRectContainsRect([image1 frame], [image2 frame])){

        [self playsound];
    }
}
Это было полезно?

Решение

Если вы хотите, чтобы он воспроизводился только для определенного объекта, который вызывает touchesEnded, вам сначала нужно идентифицировать этот объект, а затем вы можете просто выполнить быстрый оператор if-then.

Если вы хотите, чтобы он воспроизводился только один раз, просто задайте ему быструю переменную, например int playCount = 0; а затем установите его на playCount = 1; после того, как вы закончите играть, также сделайте для этого оператор if-then (т. е.воспроизвести его, если playCount равен 0, не воспроизводить, если playCount равен 1).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top