变量line
增加后,row
数组不会更新。
private int col = 5;
private int row = 0;
// The array should update according to this defintion
public int [][] line ={{col,row},{col,row+1},{col,row+2},{col,row+3}};
public void drop(){
Timer timer = new Timer();
TimerTask drop = new TimerTask() {
@Override
public void run() {
canDrop();
row++;
System.out.println(line[0][1]);
repaint();
}
};
timer.scheduleAtFixedRate(drop,100,500);
}
此代码应该输出较慢的行,但我得到的是零行:
1
2
3
...
答案 0 :(得分:0)
据我了解您的问题,您希望方便地更新line
数组。但是,当您递增row
时,它不会影响您的数组。这条线
int [][] line ={{col,row},{col,row+1},{col,row+2},{col,row+3}};
创建一个数组并复制col
和row
的值,但它不会将引用存储到您的初始变量{{ 1}}和col
,以便您只需更改其值即可更新它们。
只需创建另一个功能:
row
然后在// Updates row in the line array like in your initial definition
public void updateRowInLine(int[][] line, int row) {
for (int i = 0; i < 4; i++) {
line[i][1] = row + i;
}
}
之后调用它,例如row++
。