Box2D实现Super Mario之关键技术分析——mario下蹲通过低矮障碍物
来源:互联网 发布:淘宝牛仔裤哪家好 编辑:程序博客网 时间:2024/05/02 06:11
一、问题起源
变大之后的Mario的b2Body的宽高是16×32,而障碍物允许通过的高度只有16,游戏里的效果是,Mario借助惯性,在下蹲时滑行通过障碍物。(比如world1-2中开头的地方)。
若只滑倒障碍物宽度的一半,根据玩家的操作有2中情况:
1. 松开“下蹲”键恢复站立姿势时,mario自动向右滑出障碍物范围;
2. 在按着下蹲键的同时,按下“跳跃”键,mario顶破上方石块并卡在障碍物的空里。
二、解决方法
1.仔细观察原游戏效果的时候发现,下蹲的时候确实是重建了一个b2Body高度只有原来一半的新刚体。
销毁b2Body,重建一个高度较小、可以通过障碍物的新刚体,那么mario会在初始碰撞障碍物的时候就停下来,而且由于删除了b2Body,mario不会有任何运动,但可以试试给新建的刚体一个作用力,人为的让它运动。但是这样mario的运动效果可能不连贯。
2.b2Body的b2Fixture属性里面有个sensor,它的作用是:使mario可以检查到碰撞但不会发生实际的碰撞效果。可以不用销毁原来的刚体,宽高不变。
当mario和低矮障碍物开始碰撞之前,将mario设置为sensor,即setSensor(true)。
这时,mario不会和障碍物发生实际碰撞,继续滑行直到停下来。此时根据上面的2种情况分别处理:
上面方法不行。。。。不能碰撞的话,mario会从平台上掉落。
此时根据上面的2种情况分别处理:
情况1:给它施加一个向右的作用力(applyImpulse),让它滑出障碍物范围。
情况2:mario使用较小刚体,和障碍物碰撞,顶破砖块。
- Box2D实现Super Mario之关键技术分析——mario下蹲通过低矮障碍物
- hdu 4417——Super Mario
- Super Mario
- Super Mario之量子物理学版?
- Adventure of Super Mario
- hdu-4417-Super Mario
- 4417 hdu Super Mario
- HDU4417 Super Mario
- hdu 4417 Super Mario
- HDU 4417 Super Mario
- hdu 4417 Super Mario
- HDOJ 4417: Super Mario
- hdu 4417 Super Mario
- hdu4417 Super Mario
- HDU 4417 Super Mario
- 划分树 Super Mario
- hdu 4417 Super Mario
- 线段树 super mario
- 枚举算法简介
- 让网页成为蜘蛛网-SEO优化总结
- Java虚拟机 - 对象内存分配与回收
- 阿里巴巴内推题目之一
- 从GIMP的Retinex算法里发现了一种高斯模糊的快速实现方法
- Box2D实现Super Mario之关键技术分析——mario下蹲通过低矮障碍物
- SQL总结(三)DDL
- 小感
- Java虚拟机 - 查看JVM参数及值的命令行工具
- 仿QQ聊天程序
- SQLHelper
- gimp photocopy(影印) 算法
- HttpSession 和 ServletContext
- Java虚拟机 - JDK可视化监控工具