问题起源:

一般游戏的主角player的b2Body的fixedRotation属性都设置为true,即不能旋转,这样可以保证player在受到物理冲力的时候不会扭来扭去,比如超级玛丽他的人物模型始终是直立的。当player遇到斜面物体时,它和斜面之间只有一个接触点,这样就没有摩擦力,这会造成player运动状态的失真。

  • 如果将player的fixedRotation设置为false,即可以旋转,这时摩擦力正常,但player的sprite图片也会跟着旋转,有时却希望sprite仍保持直立。

解决方法:

一、 始终fixedRotation=true,

当player在斜面上时,将player的body构造成底部为斜边的polygon,并且倾斜角度和斜面角度相同。在平面上时,body底部改为平面。

缺点:1.不能适应各种角度的斜面。

2. 由于Box2D中b2Fixture不能变形,b2Body对象想要改变形状,其中包含的b2Fixture对象要反复创建,销毁,工作繁复,效率不高。

二、当player在平面上时,fixedRotation=true;

当player在斜面上时,fixedRotation=false;然后player的sprite图片根据斜面的角度转动相应的角度。

  • 具体做法大概是:建一个斜面类继承自CCSprite,类成员包括斜面的b2Body,斜面的角度degree,类方法包括斜面的创建方法createInclinePlane(),在这个方法中得到斜面的degree。
  • 在需要用到degree的时候,用degree的getor()可以获取。

box2D斜面摩擦力和sprite朝向的兼顾取舍相关推荐

  1. 斜面上的根骨骼运动以及刚体测试

    斜面上的互推测试 测试方法为给胶囊加一个恒定的力,然后推动另一个胶囊 方向一致的情况: 推动的话,设置对力的方向就不会有问题.就好像AddForce,给一个Y轴的力肯定会飞 斜面移动测试 沿着地面法线 ...

  2. 房产经纪人必备——房地产基础知识大全(建议收藏)

    一.房地产基础专业知识 1.房地产:指房产和地产的总称(又称不动产). 2.房地产的三种存在形态: 单纯的土地.单纯的房屋.土地房屋的综合体 3.房地产的特征: a.房地产位置的固定性(土地不可移,房 ...

  3. Box2D——入门教程

    现在网上关于as3的物理引擎真是不少,比较之后发现,在开源引擎当中Box2D算是比较不错的了,只可惜他的结构比较复杂,而且国内网站关于Box2D方面的教程真是少的可怜.因为我知道这个最早是c++上面的 ...

  4. 【COCOS2DX-BOX2D游戏开发之一】Box2d概念

    1.cocos2d 自带了两套物理引擎:Box2D 和Chipmunk.  两套引擎都是为2D游戏设计的,可以和cocos2d 完美整合.  Box2D 是用 C++写的,而 Chipmunk 用的是 ...

  5. Box2D物理引擎入门

    一.什么是Box2D Box2D是一个强大的开源物理游戏引擎,用来模拟2D刚体物体运动和碰撞,由Erin Catto早在2007年用C++语言开发. Box2D集成了大量的物理力学和运动学的计算,并将 ...

  6. Box2D 实现不倒翁效果 绘制扇形

    效果图 /* * name; */ class SetMassData extends ui.ApplyForeeTestUI{constructor(){super();this.createRec ...

  7. Box2D和Chipmunk

    物理的表现力对游戏的影响越来越重要,几乎已经是现在游戏中不可获取的要素之一,如果进入游戏开发的物理世界中,你会发现这是一个深不可测的领域,没个十几年的功力怕是难说出个头道来的,不过再难总要去面对和挑战 ...

  8. cocos2dx box2d 概念

    1.cocos2d 自带了两套物理引擎:Box2D 和Chipmunk.  两套引擎都是为2D游戏设计的,可以和cocos2d 完美整合.  Box2D 是用 C++写的,而 Chipmunk 用的是 ...

  9. cocos中的Box2d物理引擎

    原文地址:http://wwk.iteye.com/blog/1722124 一些Box2d的基本概念,一些cocos中使用box2d需要注意的地方 1. cocos2d 自带了两套物理引擎:Box2 ...

最新文章

  1. 飞机的“黑色十分钟”能被人工智能消灭吗?
  2. python-mysql的安装和基本操作
  3. bs架构 erp 进销存_从应用架构看生鲜电商信息化建设
  4. 腾讯云mysql架构_一个数据库存储架构的独白
  5. php 并发 100 压测,简单PHP把握站点并发数
  6. Struts2中UI标签之表单标签介绍
  7. 确保帐户安全 谈MySQL数据库安全解决方案
  8. Android项目实战(三十六):给背景加上阴影效果
  9. 时间复杂度、空间复杂度,如何”不复杂“地学?
  10. VMware安装系统时“无法创建新虚拟机: 不具备执行此操作的权限“的解决方案
  11. 使用小乌龟快速上手git
  12. MFI认证——苹果MFI账号申请
  13. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
  14. python3必应壁纸爬虫练手
  15. 网络推广能给企业公司带来什么好处?
  16. [附源码]Python计算机毕业设计SSM京津冀畅游网设计(程序+LW)
  17. 建立“知识共享”生态圈,培养塔尔斯基数学小后代,不是说假话、放空炮
  18. vue打包之后谷歌浏览器可以正常打开,而其它一些浏览器360等无法正常打开
  19. SQL注入-05-防御修复建议
  20. 【硬件】标准阻值的由来

热门文章

  1. [COGS2639]偏序++
  2. 深入浅出学Spring Data JPA
  3. Adobe正式在中国市场推出Creative Cloud创意应用软件
  4. it'll be much more productive to read pdf files via a touch screen
  5. 特殊人物请遵循公司工作的基本准则
  6. linux 文件查找帮助命令 , 查看网络链接信息, 历史命令
  7. 想要构建现代化数据中心?交给戴尔第14代PowerEdge服务器解决吧!
  8. linux下安装Python3.6.1
  9. (原)caffe在ubuntu中设置GPU的ID号及使用多个GPU
  10. I00012 打印三位数的水仙花数及其个数