每次按下一个键,在这种情况下,我需要我的p1Start值,在这种情况下p1StartX增加1.这用于“绘制”矩形类型的2D数组中的路径。
我的问题是,它只增加一次。我该如何解决这个问题?
scene2.setOnKeyPressed(e -> {
int p1StartX = 5;
int p1StartY = 25;
int p2StartX = 60;
int p2StartY = 25;
if (e.getCode() == KeyCode.LEFT) {
p1.setDirection(1);
p1.update();
} else if (e.getCode() == KeyCode.RIGHT) {
p1StartX++;
gameGrid[p1StartY][p1StartX].setFill(p1.getPlayerClr());
System.out.println("Player 1: Right");
}
答案 0 :(得分:0)
这是因为p1StartX
是在侦听器范围内定义的。
将它移动到一个类成员(静态或不是 - 直到您的设计...) - 事情将是O.K。
此外,我非常确定这适用于您定义的所有int
值。
像这样:
//some class definition...
private int p1StartX;
//Use a constructor to init the value of p1StartX.
...
scene2.setOnKeyPressed(e -> {
....
p1StartX++;
}