避免"Physics Space Locked"错误
2024-08-25 21:32:53
在一些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调度器的下一帧才会运行.
最新文章
- Angular通过XHR加载模板而限制使用file://(解决方案)
- Django之Model操作
- 分享一个Visual Studio的背景插件,让堆码更富情趣
- Python—RabbitMQ
- 2014年5月份第3周51Aspx源码发布详情
- tcp为什要三次握手
- Windows环境下maven 安装与环境变量配置
- html基本标签练习
- javaWeb中servlet开发——过滤器
- cocos2dx 内存管理机制
- 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
- PXE+Kickstart无人值守安装操作系统
- 201521123111《Java程序设计》第12周学习总结
- SELECT与SET对变量赋值
- js第一课总结
- Android下实现手机验证码
- android获取手机机型、厂商、deviceID基本信息
- element-ui bug及解决方案
- Linux iptables 配置规则
- 一些关于Viewport与device-width的东西~(转)
热门文章
- JVM内存区域划分(JDK6/7/8中的变化)
- Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎
- Cocoa中层(layer)坐标系的极简理解
- IE下的deflate模式
- 【NPR】非真实感渲染实验室
- Servlet之异常处理
- Oracle启用scott用户
- JavaScript实现的网页放大镜效果
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(七)
- 最简单的基于FFMPEG+SDL的视频播放器 ver2 (采用SDL2.0)