跳跃和站在2D游戏中的对象

时间:2011-08-25 10:59:32

标签: java

我正在制作小型2D游戏,我希望理论上应该如何跳跃和站立在物体上 跳跃是否应该有某种引力?我应该使用碰撞检测吗? 我想要解决的好例子是在马里奥跳跃。

3 个答案:

答案 0 :(得分:1)

我认为跳跃最好是创建一些使用“游戏时间”的简单模型。我个人会根据引力创建一些物理模型,但你可以随心所欲。

如果您希望角色“站立”在物体上,则必须创建一些碰撞检测。良好的开端是通过一个或多个圆(或线)来计算物体的碰撞,并在近似碰撞的情况下通过一些更精确的方法确定最终状态。

答案 1 :(得分:0)

就重力和碰撞检测而言 - 就个人而言,我会说是,是的!它不一定非常复杂,但是一旦你有了这些东西,“主循环”的伪代码变得相对简单:

if not colliding with object underneath, apply gravity
if user presses jump key and not colliding with surface //i.e. if we're in the air already, don't jump again
    apply upward velocity

这当然是过于简单化的,还有其他一些需要处理的角落情况(比如确保当你在跳跃后下来时,你最终不会嵌入或潜在地进入场地。

您可能需要查看Greenfoot,它可以为您处理许多事情,例如所有Java2d内容,碰撞检测等。即使你不坚持它,它也是建立原型或玩弄谈论的想法的好平台。

答案 2 :(得分:0)

站在物体上意味着碰撞检测,您可以用原始形状(矩形,圆形等)近似字符和环境对象。 要检查形状是否发生碰撞,请逐个检查轴(在您的情况下为X轴和Y轴)。 Here是对“分离轴定理”的解释(第1节)。