我正在爲一個班級創建一個街機遊戲。遊戲是Columns。我試圖讓所有的自由浮動塊每秒鐘下降一次。我的代碼使它們失效,但計時器沒有。以下是我的代碼的相關部分。擺動計時器不工作
前兩個出現在我的圖塊管理員對象,我使用來管理內部邏輯
public void play(){
t = new Timer(1000, this);
t.start();
}
public void actionPerformed(ActionEvent e) {
for(int v = 0;v < this.x; v++){
if(v > this.x || v < 0){
break;
}
for(int b = 0;b < this.y ;b++){
this.gameScreen.get(v).get(b).setActive(true);
}
}
for(int i = 0;i < this.x; i++){
if(i > this.x || i < 0){
break;
}
for(int j = 0;j < this.y ;j++){
if(this.gameScreen.get(i).get(j).getActive() == true){
if(j + 1 < this.y){
if(this.gameScreen.get(i).get(j+1).toString().equals(".")){
Collections.swap(this.gameScreen.get(i), j, j+1);
this.gameScreen.get(i).get(j+1).setActive(false);
}
}
}
}
}
}
this is the main method that is another file.
public static void main(String[] args){
ColumnsUI Col = new ColumnsUI(9,9);
Col.game.nextBlock();
Col.gw.add(Col.show);
Col.game.play();
}
列UI對象是油漆基於內部邏輯的簡單方法。我懷疑它與定時器故障有什麼關係,因爲它在我手動調用actionPerformed的內容時起作用。
感謝您的幫助!
「我的代碼,使他們倒下的作品,但計時器沒有。」請提供比更多信息「是行不通的。」什麼是你期待發生?反而發生了什麼? – VGR
我期待actionPerformed中的代碼執行。當我將它移到該方法之外並手動執行時,它完全按照它的意圖執行,也就是說它將塊移開。 –
'Col.game.play();'是否可能執行與您的問題中顯示的方法不同的play()方法? – VGR