【发布时间】:2012-04-15 13:06:20
【问题描述】:
我正在制作类似 r-type 的东西;我制作了宇宙飞船、导弹、外星人,除了碰撞检测之外,一切都在工作。在真正的外星人出现并说我输了之前,它似乎在大约 500 像素内记录了玩家和敌人之间的碰撞。
Board.java:
public void checkCollisions() {
Rectangle r1 = al.getBounds();
ArrayList missiles = Craft.getMissiles();
for (int w = 0; w < missiles.size(); w++)
{
Missile m = (Missile) missiles.get(w);
Rectangle m1 = m.getRect();
if (r1.intersects (m1) && al.Alive()) {
al.isAlive = false;
m.visible = false;
}
}
Rectangle c = p.getBounds();
if (c.intersects(r1)) {
lost = true;
}
Craft.java:
public Rectangle getBounds() {
return new Rectangle(x, y, width, height);
}
Enemy.java:
public Rectangle getBounds() {
return new Rectangle(x, y, width, height);
}
正如我所说 - 导弹工作正常,但飞船和外星人之间的碰撞检测在 x = 458 中检测到,而它应该在大约 1100 到 1200 之间。
【问题讨论】:
-
"你能帮我解决一下吗?" - 如果您没有提供有关您的问题/碰撞检测算法/.. 的任何有用信息,则否
-
如果您提供一些代码可以使用,有人可能会提供帮助。老实说,你怎么能在没有看到你的代码的情况下真正期待任何答案。
标签: java 2d collision-detection collision alien