让我说我有这个:
for(int i = 0; i < pointsArray.size(); i++) {
...
some setup stuff
...
if(pointOnMinimap()) {
click(pointsArray.get(i);
}
}
每当它运行时,它会多次点击小地图上的点,直到出现pointsArray中的下一个点。对于每个点,如何确保click()运行一次?
编辑1 正如GhostCat所说,我添加了点击功能,也许这可能是问题。
public void click(int x, int y) {
game.getCanvas().dispatchEvent(new MouseEvent(game.getCanvas(),
MouseEvent.MOUSE_PRESSED,
System.currentTimeMillis(),
0,
x, y,
0,
false));
game.getCanvas().dispatchEvent(new MouseEvent(game.getCanvas(),
MouseEvent.MOUSE_RELEASED,
System.currentTimeMillis(),
0,
x, y,
0,
false));
game.getCanvas().dispatchEvent(new MouseEvent(game.getCanvas(),
MouseEvent.MOUSE_CLICKED,
System.currentTimeMillis(),
0,
x, y,
0,
false));
}
答案 0 :(得分:2)
的内容
for (int i = 0, j = 0; i < pointsArray.size(); i++) {
if (j == 0 && pointOnMinimap()){
j = 1;
click(pointsArray.get(i);
}
会做到的。这是惯用的优雅C,但在Java中它实际上是滥用int
类型。乳蛋饼食用者和女孩可能希望将j
定义为boolean
类型,但您需要在for
循环上需要额外的作用域。
答案 1 :(得分:0)
我认为有一些条件,当为true时会引导你调用pointsOnMiniMap
函数
for(int i = 0; i < pointsArray.size(); i++) {
...
some setup stuff
...
if(SOME_CONDITION && pointOnMinimap()) {
click(pointsArray.get(i);
}
}
答案 2 :(得分:0)
如果您提供一些示例数据会更好。我认为click(pointsArray.get(i);
每次调度if(pointOnMinimap())
都会返回true;
尝试检查这种情况,如
如果(!pointOnMinimap()) 继续; 其他 单击(pointsArray.get(ⅰ);
答案 3 :(得分:0)
我做了GhostCat和RealSkeptic所说的,再次从头开始写这个部分,发现JButton动作监听器是导致鼠标点击循环的部分。谢谢大家的帮助:D