【发布时间】:2017-02-16 23:21:18
【问题描述】:
我在 android studio 中编程,我想制作一个带有一些物理特性的游戏。我不知道如何实现我的游戏的物理特性。例如,我想用一个球做一个游戏,它可以跳过一些矩形,可以与它们碰撞,并且可以踩到它们,就像真正的物理一样。 我该如何实施?
public abstract class GameObject {
protected double vX;
protected double vY;
protected double mass;
protected MyPoint centerOfMass;
protected double accelerationX;
protected double accelerationY;
protected void update()
{
if(Math.abs(vX)<0.05)
{
if(Math.abs(accelerationX)==0.05)
{
vX=0;
accelerationX=0;
}
}
vY+=accelerationY;
vX+=accelerationX;
this.centerOfMass.setX(this.centerOfMass.getX()+vX);
this.centerOfMass.setY(this.centerOfMass.getY()+vY);
}
protected void collide()
{
// no idea ...
}
我不知道如何实现碰撞方法,因为有很多选择可以覆盖,比如球在矩形上方,还是在矩形下方,或者他从左侧落下时来了直,或跳跃时来。
另外,我不想用像AndEngine这样的物理引擎,我想自己编程。
有人能给我一些关于如何实现它的想法吗?谢谢!!
【问题讨论】:
-
游戏中碰撞检测的核心是数学。可以使用方程来描述数学原始对象。我建议阅读 MDN 上的 2D collision detection 文章。
-
你应该拿一本关于这个主题的(好)书——在上完游戏开发的高级 cs 课程后,我的书架上有 Ian Millington 的
Artificial Intelligence for Games的副本。它有几章关于碰撞检测(以及分解实现的伪代码)。另外,那篇 MDN 文章看起来也不错。 -
非常感谢。这篇文章正是我想要的。
标签: java android physics game-physics rect