【发布时间】:2013-05-13 10:09:50
【问题描述】:
我试图通过设置单个怪物“chasePoint”来让我的“怪物”通过“PathingCoordinates”的数组列表。 但每次我添加超过 1 个怪物时,它们都会在 JPanel 周围四处奔跑。 (我的猜测;采取最快的路线到下一个“追逐点”)
由于我是 java 新手,并且是 foreach 循环的第一次用户,如果有人能指出我的逻辑失败的方向,我会很高兴。
for (Monster i : Monstre)
{
this.add(i); //Adds all monsters from the "Monstre" arrayList
i.setBounds(i.monsterx, i.monstery, Monster.img0.getIconWidth(), Monster.img0.getIconHeight());
if(i.monstery == i.chasePoint.getY() && i.monsterx == i.chasePoint.getX() ){
p++;
i.chasePoint = PathingCoordinates.get(p);
}
if(i.monsterx < i.chasePoint.getX()){
i.monsterx++;
}else if(i.monstery < i.chasePoint.getY()){
i.monstery++;
}else if(i.monsterx > i.chasePoint.getX()){
i.monsterx--;
}else if(i.monstery > i.chasePoint.getY()){
i.monstery--;
}
}
抱歉,如果需要更多信息,请提出要求。
编辑:每个怪物生成之间都有延迟。第一个怪物追逐正确的“chasePoint”下一个小怪,似乎随机移动。
【问题讨论】:
-
我认为全局变量 p 有问题。你能发布整个课程吗?
-
追逐点是如何设置的,这可能是“幽灵般的远距离动作”,您不小心在 moster 的构造函数中设置了相同的对象,但我们需要查看整个类(最好有它自己的 main 方法允许它独立于其他类运行并显示问题)
-
确实“p”变量似乎有问题! brb
-
我是否正确理解每个怪物应该遵循相同的路径(一个接一个)?在这种情况下,
p应该是Monster的成员变量,而不是所有怪物共享的全局变量。 -
问题是“p”变量在错误的位置创建。谢谢你们的帮助! :)
标签: java foreach path-finding