假设我有这个:
for(int i = 0; i < pointsArray.size(); i++) {
...
some setup stuff
...
if(pointOnMinimap()) {
click(pointsArray.get(i);
}
}
每当它运行时,它将多次单击小地图上的点,直到出现来自pointsArray的下一个点。如何确保click()对每个点都运行一次?
编辑1正如GhostCat所提到的,我添加了click函数,也许这可能是问题所在。
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));
}
最佳答案
一些东西
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
循环上您需要额外的作用域块。关于java - 如何确保if语句内的指令(也位于for循环内)仅执行一次?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45325599/