假设我有这个:


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/

10-10 16:08