我正在使用SimpleAudioEngine,我试图在继续之前检测声音效果是否完成播放.
我正在寻找任何方法,但我试图实现的方法不起作用!
CDSoundEngine *engine = [CDAudioManager sharedManager].soundEngine;
ALuint soundId = [[SimpleAudioEngine sharedEngine] playEffect:soundId];
float seconds = [engine bufferDurationInSeconds:soundId];
Run Code Online (Sandbox Code Playgroud)
每次我使用bufferDurationInSeconds时,它都会将float值-1返回到变量秒.我检查了实现,当id无效时返回-1,但我100%ID有效!
任何人都可以帮我解决这个问题,或者建议我另一种方法来检测声音效果的结束?
我有一个有多个实例变量的类.我想在课堂上达到两个目的.我可能只将某些变量用于一个目的,有时可以同时使用这两个变量.
这是一个更具体的例子.我想创建一个类,每次用户点击屏幕时,狗精灵和猫精灵都会出现动画.如果再次点击,他们将继续执行不同的动画.但是,有时我只想让狗精灵出现并更新.还有一些其他罕见的时刻,我希望猫精灵在狗精灵出现之后出现几次.
问题是:实例变量是否分配了太多内存?我非常关心性能,因为我打算制作内存密集型游戏.由于我很难预测何时实际使用所有实例变量,我应该将它们分成两个类吗?让我们划分可能的场景以获得更好的想法.
只使用Dog Sprite并且cat sprite永远不会出现:如果留在一个类中,则cat的实例变量保持不变.
狗精灵首先出现,然后猫精灵出现:两个精灵最终都会出现.可以将它分成两个类,但是由于诸如触摸提前逻辑和动画之类的方法是相似的,因此一些方法是重复的.但是如果我们把它留在一次,那么可能会出现情景1,这可能会在没有重复复制很多代码的情况下解决.
其他事情可能会发生,但上面已经讨论过这些问题.从我的角度来看,这些是赞成和反对的:
一类方法
无需导入导致某些类似实例变量的多个标头
精读
两类方法
可能从类继承,而不会在将来继承一些不必要的变量
精读
我很难决定应该使用哪个选项.任何建议都会很棒!先感谢您!
if (didHelp)
for (int x = 0; x < 100; x++)
NSLog(@"Thanks!");
Run Code Online (Sandbox Code Playgroud)