2016-12-07 31 views
0

每次我按下一個鍵,在這種情況下,我需要我的p1Start值,在這種情況下,p1StartX增加1.這用於「繪製」矩形類型的二維數組中的路徑。每按一次鍵就需要遞增1 JavaFx

我的問題是,它只增加一次。我怎樣才能解決這個問題?

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

發生這種情況是因爲p1StartX是在偵聽器的範圍內定義的。

將它移到一個類的成員(靜態或不是 - 直到您的設計...) - 事情將是O.K.

此外,我很確定這適用於所有定義的int值。

像這樣:

//some class definition... 
private int p1StartX; 

//Use a constructor to init the value of p1StartX. 

... 

scene2.setOnKeyPressed(e -> { 

    .... 

     p1StartX++; 

    } 
+0

謝謝你,我用我的其他類來創建一個增量器每次按下該按鈕,它的工作,我會永遠愛你! –