##実現したいこと
題名の通り、カウントダウン後に本体のゲームを実行できるようにしたいです。具体的にはゼロ秒になったらゲーム実行できるようにすることです。
自分の考えでは、if文でsecがゼロになったら、次の実行画面に移動できるようにしたい考えです。ほかの方法はありますか?
##プログラムの説明
breakoutがカウントダウン後に実行されるクラスです。コードが長く文字量の関係でみられないです。TimerTest1がメインとなっています。今の現状は、TimerTest1が実行し、フレームとカウントダウンが表示されますが、0秒となったらstartだけ表示し、次の実行へ移動されない状態です。どうかご協力をお願いします
java
1import javax.swing.*; 2import java.awt.BorderLayout; 3import java.awt.event.*; 4 5 6import java.awt.*; 7 8import javax.swing.Timer; 9public class TimerTest1 extends JFrame implements ActionListener{ 10 static int x=855; 11 static int y=800; 12 Timer timer; 13 JLabel label; 14 static int sec; 15 public static void main(String[] args){ 16 JFrame fr = new JFrame("Tile-based game"); 17 TimerTest1 frame = new TimerTest1(); 18 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 frame.setSize(x,y); 20 frame.setTitle("タイトル"); 21 22 frame.setVisible(true); 23 fr.setSize(x,y); 24 fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 25 fr.getContentPane().setBackground(new Color(0, 0, 0)); 26 27 if(sec==0){ 28 breakout panel = new breakout(); 29 30 panel.setOpaque(false); 31 32 fr.add(panel); 33 34 fr.setVisible(true); 35 } 36 37 } 38 39 40 TimerTest1(){ 41 sec = 5; 42 label = new JLabel(); 43 44 JPanel labelPanel = new JPanel(); 45 labelPanel.add(label); 46 47 timer = new Timer(1000 , this); 48 49 getContentPane().add(labelPanel, BorderLayout.CENTER); 50getContentPane().add(labelPanel, BorderLayout.CENTER); 51 timer.start(); 52 } 53 54 public void actionPerformed(ActionEvent e){ 55 label.setText(sec + " "); 56 57 if (sec <= 0){ 58 label.setText("start"); 59 timer.stop(); 60 }else{ 61 sec--; 62 } 63 } 64}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/01/05 07:10