2017-01-05 18 views
1

非常に新しいJavaですので、基本レベルで説明してください。スネークゲームをしようとしています。ゲームの背景のためのコードを入力する過程で。タイマーに問題があります。 ***起動時のJavaタイマー問題

package snake; 

import java.awt.Dimension; 
import java.awt.Toolkit; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

    import javax.swing.JFrame; 


public class Snake implements ActionListener { 

     public JFrame jframe; 
     public RenderPanel renderPanel;  
     public static Snake snake; 


     public Snake() { 
      Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); 
      jframe = new JFrame("Snake"); 
      jframe.setVisible(true); 
      jframe.setSize(800, 700); 
      jframe.setLocation(dim.width/2 - jframe.getWidth()/2, dim.height/2 - jframe.getHeight()/2); 
      jframe.add(renderPanel = new RenderPanel()); 
      jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


     } 

    public static void main (String []args) { 
      snake = new Snake(); 
     } 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
      renderPanel.repaint(); 

     } 
+1

問題のある領域をうまくマーキングしても、問題が何であるかはわかりません。 – hotzst

+1

「問題」を引き起こしていることを正確に説明できますか?あなたの最初の投稿に素敵なマークアップの名誉! –

+0

最初のエラーが表示されます。 "コンストラクタタイマー(int、Snake)は未定義です" – steve97h

答えて

0

intとSnakeオブジェクトでタイマーを初期化することはできません。これはTimerクラスではサポートされていません。 Java Apiをご覧ください。コンストラクタの概要Timerクラスのコンストラクタが表示されます。

あなたが定義された時間後に次の操作を行う何かをしたい:

Timer timer = new Timer(); 
timer.schedule(new ReceiverTask(), 1000); 

1000はReceiverTaskのrunメソッドそれまではミリ秒単位の遅延が呼び出されますです。

ReceiverTaskは、TimeTaskを拡張するクラスである必要があります。例:

class ReceiverTask extends TimerTask { 
    public void run() { 
     //update your Background her 
    } 
} 
+0

ありがとうございます。私の意図は背景色を変えることです。しかし、この時点では、タイマーを起動させることなく、アプリケーションは実行されません – steve97h

+0

いつですか?数ミリ秒後に? – GAlexMES

+0

この時点では、まったく開いていません。しかし、私はその問題が私の行から来ていると信じています。32 *** snake = new Snake(); ***ここでは、メソッドの開始がタイプタイマーのために定義されていないと言っている小さな矢印を返しています – steve97h