我在做一个音乐的app,就是根据音乐的节奏点,屏幕上按照时间出现一些动画,要求玩家去击打屏幕,基本上运行没有太大的问题。
但是,偶然会出现动画有点卡的情况,然后就导致所有的动画序列都有了时间位移,但是音乐的时间没有变,这样就造成了音乐和动画的不同步,虽然出现的不是很多,但是我觉得一旦出现就很致命,想了很久,不知道怎么解决比较好
音乐我用的是 CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(“music1.mp3”);
动画我也用的是最基本的一个sequence
for (int i = 0; i < totalNumberOfAnimation; i ++)
{
float wait = arrayOfTime;
this->runAction(Sequence::create(
DelayTime::create(wait),
CallFunc::create(CC_CALLBACK_0(HelloWorld::createSpriteTap, this, i)),
DelayTime::create(10),
CallFunc::create(CC_CALLBACK_0(HelloWorld::cleanSpriteTap, this)),
NULL));
我在我ios6 的手机上和安卓的手机上测试,貌似都没有出现这个现象,iOS 8的手机(iphone5)和ipad 2上都有,是iOS 8才有的问题么?是需要一些线程方面的处理么?