2013-12-17 46 views
0

我正在點一個點擊遊戲,並希望在一些按鈕之間切換場景。我已經制作了所有的場景以及按鈕類。按鈕類包含兩個方法,一個用於設置按鈕,另一個用於獲取按鈕。每個場景都包含兩種方法,一種用於加載背景圖像,另一種用於加載場景的所有功能,如按鈕,點和標誌。使用按鈕在場景之間切換

class Button { 
    Button() { } 
     void setButton(float plX, float pmX, float plY, float pmY, float iX, float iY) { 
      this.poslX= plX; 
      this.posmX = pmX; 
      this.poslY = plY; 
      this.posmY = pmY; 
      this.imgX = iX; 
      this.imgY = iY; 
      } 


     boolean getButton() { 
      if(mouseX > plX && mouseX < pmX && mouseY > plY && mouseY < pmY) { 
      image(img, pX, pY); 
      if(mousePressed) { 
       click = true; 
      } 
      } 
      else { 
      image(imgH, pX, pY); 
      clicked = false; 
      } 
      return clicked; 
     } 
} 

我在一個名爲mainScene()的方法中調用所有這樣的按鈕。

class SceneOne { 
     SceneOne() { // some images go here } 

void mainScene() { 
     button.setClickableArea(1125, 1125 + 164, 60, 60 + 165, 1125, 60); 
     button.getClickableArea(); 

     button.setClickableArea(1125, 1125 + 164, 500, 500 + 165, 1125, 500); 
     button.getClickableArea(); 
     } 
} 

另外我有一個階段類應該包含所有場景以及切換邏輯。我只打算把一種方法放在draw()中,叫做gameStart()。問題是我如何讓按鈕切換到特定的場景?

感謝

+0

他們之間的你draw()gameStart()功能開關使用的的MouseListener。這與繪製按鈕的組件上的MouseMotionListener結合在一起會爲您提供有關鼠標所做的所有信息。 –

+0

是的,你創建一個ActionListener並將其附加到按鈕。 這裏是文檔。 http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionListener.html – Corjava

+0

你可以發佈一些代碼,所以我可以看到它是如何工作的?這不是真正的java,但是處理是基於java的。我有按鈕類,但我不知道如何傳遞一個方法,所以當點擊按鈕時,它會觸發該場景/方法。另外mousePressed完全按照它的說法。 –

回答

0

處理語言有內置的鼠標監聽功能,所以你需要添加這樣的事情對你的代碼。 (scene應該是全球性布爾變量)

void mousePressed() { 
    if(button.getButton()) { 
    //here you somehow store information which scene you want to draw ... e.g. 
    scene = !scene; 
    } 
} 

draw() { 
    if(scene){ 
    //draw first scene 
    }else{ 
    //draw second scene 
    } 
}