我有一个花卉游戏应该在预定的时间掉花。我有一个级别类,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();
}
我希望添加此代码有助于!!!
答案 0 :(得分:1)
我没有Java经验,但你应该在主线程之外的另一个线程中调用level1方法。这样程序运行,thread.sleep只用于level1方法。