问题:
我知道这已经被问了很多次,但我没有发现任何好的答案。
所以我有一些实体为我的比赛,现在的检查冲突的最佳方式?
链接:
游戏(完)
代码解释:
我有我的世界一流的实体列表:
List<Entity> entities = new ArrayList<Entity>();
// The list in the World class
我使用此代码(仅在视野范围内)更新它们:
public void update(GameContainer gc, int delta) {
for (int i = 0; i < entities.size(); i++) {
entities.get(i).update(gc, delta);
}
}
// Update entities
所以,现在我想请检查实体更新方法内部冲突。
我想这是我的更新方法:
@Override
public void update(GameContainer gc, int delta) {
for (Entity entity : world.entities) {
if (intersects(entity)) {
// world.remove(this);
}
}
}
// The update method of an entitiy
这是当前instersects方法:
public boolean intersects(Entity entity) {
if (entity instanceof Player) {
// Do nothing
} else {
if (shape != null) {
return this.getShape().intersects(entity.getShape());
}
}
return false;
}
// The intersects method of the abstract Entity class
目前相交方法总是返回true。 但为什么?