【发布时间】:2014-03-17 23:19:37
【问题描述】:
我目前循环遍历我的所有精灵,检查它们是否像这样相互交叉:
for (Sprite s : sprites) {
if (s.dead) {
dead.add(s);
}
for (Sprite sprite : sprites) {
if (!sprite.equals(s)) {
s.collide(sprite, maxX, maxY);
}
}
s.run();
}
精灵检查使用 Rect.intersects() 方法,如下所示:
if (getRect().intersects(s.getRect()))
但有时它只是完全忽略了碰撞,而对象只是相互穿过。
有什么想法吗?
【问题讨论】:
-
精灵是否移动得如此之快,以至于在实际交叉点之前完成了一次检查,在交叉点之后完成了下一个检查,但没有在路口?如有疑问,一些
System.out.println语句(或调试器运行)可能有助于找出问题所在。 -
我添加了一个检查帧之间的冲突,现在它工作得更好了。
标签: java collision rectangles