2013-09-23 77 views
-3

我正在做一個蛇遊戲項目。我有一個名爲三個Java文件:當我點擊JButton時,我想讓那個遊戲開始

  • Engine.java
  • GameBoard.java
  • Snake.java

我已經在這個項目中增加了兩個JFrames。在第一幀中有三個按鈕:

  • play
  • rules
  • exit

當我們點擊它打開rules jframerules按鈕(它的工作)。當我們點擊play按鈕時,它應該運行蛇遊戲。當我點擊play按鈕來實際啓動遊戲時,請告訴我該怎麼做。

這是我在play按鈕actionPerformed方法複製的代碼:

 JFrame frame = new JFrame("SnakeGame"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setResizable(false); 
     Canvas canvas = new Canvas(); 
     canvas.setBackground(Color.black); 
     canvas.setPreferredSize(new Dimension(GameBoard.MAP_SIZE * GameBoard.TILE_SIZE, GameBoard.MAP_SIZE * GameBoard.TILE_SIZE)); 
     frame.add(canvas); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
     new Engine(canvas).startGame(); 
+1

爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

顯示一些代碼。 – rebeliagamer

+1

@ ankush-pruthi請使用編輯按鈕,添加'引擎'代碼,並寫下更多關於您的問題 - 您期望什麼?你嘗試了什麼?等等。 – rebeliagamer

回答

1

添加ActionListener到您的「播放」按鈕調用相應的啓動方法。

+0

我已經添加ActionListener播放按鈕..我正面臨的問題是,當我點擊播放按鈕的遊戲板出現,但蛇不動,即蛇是不動的.. –

0

我不知道,如果我正確理解你的問題:你的Snake.java是一個GUI?

JButton play = new JButton("play"); 

play.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) 
     { 
      Snake play = new Snake(); 
     } 
}); 

希望幫助: 如果是的話,那麼當你點擊播放按鈕,讓你的GUI「蛇」,的對象。

+0

@Andrew湯普森沒有對java –

+0

@Andrew湯普森:當然你是對的。這是android的源代碼。我編輯了代碼。 – tharos

+0

@tharos ohh現在我正在添加一些東西 –

0

你很固執,你可能不會顯示更多的代碼,所以我想你有問題的線程。如果startGameEngine正在持有主遊戲循環,那麼您需要將其作爲線程運行,因爲用戶界面和邏輯需要分開。

它可能看起來類似的東西:

JFrame frame = new JFrame("SnakeGame"); 
    Canvas gui = new Canvas(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setResizable(false); 
    frame.getContentPane().add(gui); 
    frame.setSize(GameBoard.MAP_SIZE * GameBoard.TILE_SIZE, GameBoard.MAP_SIZE * GameBoard.TILE_SIZE); 
    frame.setVisible(true); 
    Thread gameThread = new Thread(new Engine(gui)); 
    gameThread.setPriority(Thread.MIN_PRIORITY); 
    gameThread.start(); 

在該示例Engine實現Runnable。你可以在這裏找到更多Java 2D: Hardware Accelerating - Part 2 - Buffer Strategies

相關問題