我正在尝试在iphone和cocos2d上创建一个平台游戏。 我还没决定使用Box2D ......但是根据我是如何解决这个问题,我可能不得不使用它。
我的问题是跳跃。 当我的角色(精灵)沿着平坦的壁架运行时,我试图跳到壁架的末端,有时候,有效地,我在角色有效地“走出”壁架后立即按下跳跃。 在视觉和物理上它感觉非常离奇,因为我几乎肯定每次我在最后一刻都按下,但不是,这是一个循环太迟了。
有没有人遇到同样的问题,并且知道一种处理它的聪明方法?
答案 0 :(得分:1)
我认为,在你的情况下,你可以简单地考虑一些精度,这将允许你在“离开”平台之后稍微跳一下。
无论如何,box2d是一个相当不错的物理引擎,它允许您检测碰撞并模拟物体行为(例如,它可以在碰撞后自动将旋转应用于对象)。互联网上有很多手册,可以帮助你理解它是如何工作的。
答案 1 :(得分:0)
我猜你只是使用角色的位置来确定他是否还在壁架上。如果是这样的话,那个角色将在他的中心点越过壁架的那一刻“失去立足点”。没有平台电影那样做。
相反,您应该测试角色的整个边界框宽度。只要边界框的左下角或右下角仍然在可行走的平面上,角色就不会从壁架上掉下来。你会在许多平台游戏中看到这一点,角色仍然站在一个只有一只脚的壁架上。
您可能感兴趣的两件事:
这Guide to implementing 2D Platformers。几乎涵盖了您需要知道的一切。没有代码,但很容易遵循算法的说明。
然后是Commander Cool,一个商业平台游戏套件,带有cocos2d& Box2D的。如果你对加速开发感兴趣,而不是花时间重新发明轮子,即平台框架代码。