0

決められた時間に花を落とすフラワーゲームがあります。レベル クラスがあり、 level1() はメソッドです。私が使用するlevel1メソッドの中で...

Thread.wait(10000);

ただし、そのマークに到達するまでプログラム全体を待機させます。プログラムをロードしてから待機させたい。私も試しました...

public static void waiting(int n) {        
    long t0, t1;

    t0 = System.currentTimeMillis();

    do{
        t1 = System.currentTimeMillis();
    }
    while (t1 - t0 < n);
}

しかし、それでも違いはありません。これを行うより良い方法はありますか?これがメソッドコードです...

    package net.blockydigital;

    public class Level {
        RedFlower rf;
        PinkFlower pf;
        WhiteFlower wf;
        YellowFlower yf;
        public Level(){
            rf = new RedFlower();
            pf = new PinkFlower();
            wf = new WhiteFlower();
            yf = new YellowFlower();
        }
        public void level1(){
            try{
            Thread.sleep(10000);
            }catch(Exception e){
                e.printStackTrace();
            }
            rf.dropFlower();
        }
     }    

そして、これは私がコードを呼び出す場所です...

    public PlayGame(){
    sc = new ShoppingCart();
    pf = new PinkFlower();
    rf = new RedFlower();
    wf = new WhiteFlower();
    yf = new YellowFlower();
    s = new Shoes();
    l = new Level();
    addKeyListener(new AL());
    setFocusable(true);
    setBackground(Color.WHITE);
    clock = new Timer(5, this);
    clock.start();
    l.level1();
}

このコードを追加すると役立つことを願っています!!!

4

1 に答える 1

1

私は Java の経験がありませんが、メイン スレッドとは別のスレッドで level1 メソッドを呼び出すだけです。このようにプログラムが実行され、thread.sleep は level1 メソッドに対してのみ存在します。

于 2012-10-28T15:20:46.297 に答える