我正在尝试在touchesEnded上播放声音,但是我遇到了问题。有多个对象可以移动,因此如果以下代码在移动任何对象时都成立,则它将不断播放声音。我怎么只玩一次?

-(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,请不要播放。

10-07 12:19