避免"Physics Space Locked"错误

避免"Physics Space Locked"错误,第1张

概述在一些cocos2d中使用物理引擎的代码中,往往会出现如下错误: Aborting due to Chipmunk error: You cannot manually reindex objects while the space is locked. Wait until the current query or step is complete.Failed condition: !spac

在一些cocos2d中使用物理引擎的代码中,往往会出现如下错误:

Aborting due to Chipmunk error: You cannot manually reindex objects while the space is locked. Wait until the current query or step is complete.Failed condition: !space->locked

该错误是一个著名的典型问题在大多数物理引擎中出现:在碰撞事件中,你不能修改物理世界(在Chipmunk中是space)中的特定部分.在这个例子中,播放动画将会修改节点的旋转因此旋转节点的物理对象.Chipmunk并不喜欢这样做,因为物理世界(space)被锁住了!意思是当前处理的物体需要连贯的状态,只有物理引擎自身允许修改它们的状态.(而不是在SpriteBuilder中用动画修改).

幸运的是我们可以快速简单的修正这个错误…见如下代码:

-(voID)dIDTriggerWithNode:(CCNode *)activator{ [self scheduleBlock:^(CCTimer *timer){ [self.animationManager runAnimationsForSequencenamed:_timelinename];    } delay:0.0];}

用0延时推迟调度一个block,直到Cocos2D调度器运行所有调度blocks的下一时刻中才会运行,至少它将会延时到Cocos2D调度器的下一帧才会运行.

总结

以上是内存溢出为你收集整理的避免"Physics Space Locked"错误全部内容,希望文章能够帮你解决避免"Physics Space Locked"错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1071956.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存