Cocos2d-x 封装物理引擎PhysicsBody异常解决方案
来源:互联网 发布:淘宝店铺流失金额 编辑:程序博客网 时间:2024/06/14 19:02
使用Cocos封装物理引擎,PhysicsBody会乱飞乱跳、抖动,如下图:下面两种方式都能有效的解决这个问题。
方法一: 关闭物理自动同步(auto step),在update中同步。
自动同步(delta time同步):
不自动同步(固定值同步):
1. 设置物理世界的自动同步为否;
auto scene = Scene::createWithPhysics();auto world = scene->getPhysicsWorld();world->setGravity(Vec2(0, -50));world->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);world->setAutoStep(false);//物理世界自动同步关掉 auto layer = HelloWorld::create();layer->world = world;//将此场景的PhysicsWorld赋值给自定义变量 scene->addChild(layer);
2. 启用update,在update中同步物理世界;
void HelloWorld::update(float dt){world->step(0.05f);//step()不要传入dt(delta time), 传入固定值,PhysicsBody才会稳定}
方法二:启用fixed step system
cocos2d-x-3.11将Chipmunk升级为v7.0.1,下面是3.11新增的函数,只需要调用这个函数就能解决物理异常:
PhysicsWorld::setFixedUpdateRate(int );当传入参数为0时表示关闭fixed step system,默认值为零(即默认关闭fixed step system)
其含义是每秒钟物理世界更新多少次,一般传入30-50左右足矣,数值越大物理模拟越精确,每秒更新次数过多性能也会下降。Unity物理相关的FixedUpdate()函数默认是0.02秒执行一次,也就相当于每秒50帧。
启用Fixed Step System:
Scene* HelloWorld::createScene(){ auto scene = Scene::createWithPhysics();auto pWorld = scene->getPhysicsWorld();pWorld->setGravity(Vec2(0, -98));pWorld->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL);//启用Fixed Step SystempWorld->setFixedUpdateRate(30); auto layer = HelloWorld::create(); scene->addChild(layer); return scene;}
0 0
- Cocos2d-x 封装物理引擎PhysicsBody异常解决方案
- COCOS2D-x封装物理引擎Phsics
- cocos2d-x物理引擎
- cocos2d-x物理引擎
- cocos2d-x 物理引擎
- cocos2d-x 物理引擎box2d
- cocos2d-x 物理引擎box2d
- cocos2d-x 物理引擎Box2D
- cocos2d-x3.0 Physics封装物理引擎
- cocos2d-x 3.0开发笔记---物理引擎封装 Physics深入学习
- cocos2d-x 3.0开发笔记---物理引擎封装 Physics深入学习
- cocos2d-x之物理引擎box2d(1)
- cocos2d-x之物理引擎box2d(2)
- cocos2d-x 物理引擎BOX2d学习
- Cocos2d-x 3.0 物理引擎小demo
- Cocos2d-x 3.0 简捷的物理引擎
- Cocos2d-x Box2D物理引擎编译设置
- cocos2d-x-3.2启用Box2d物理引擎
- linux下面ftp/wget命令下载文件夹目录
- SQLServer : EXEC和sp_executesql的区别
- libcstl在windows和VC上安装
- 嵌入式程序员应知道的基本问题
- Objective-C中的内存管理及MRC
- Cocos2d-x 封装物理引擎PhysicsBody异常解决方案
- model/view 架构
- springMvc时间格式化model的时间字段上填写
- 工作细节
- Linux文件基本操作
- js替换所有img的值
- javascript高级开发学习笔记九
- Java 内存结构备忘录
- 《如何及时处理你的坏心情》第一章:找个理由原谅自己,从过去中解脱出来