这是一个我开始研究的java游戏。我一直在尝试添加一个按钮,上面写着“RESTART”,点击它会重置整个程序,就像它在开始时那样(我的意思是游戏开始)。
这是我的代码: 有2个按钮,即“PLAY”& “检查谁!”
对于“PLAY”这是代码:
int delay = 1000;
final Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
String b = "C:\\Users\\COMPUTER\\Desktop\\deck\\.png";
Random r = new Random();
r1 = r.nextInt(upplim)+lolim;
String a = Integer.toString(r1);
String c = "C:\\Users\\COMPUTER\\Desktop\\deck\\"+a+".png";
l1.setIcon(new ImageIcon(c));
}
},delay, 50);
为“检查谁!”这是代码:
final int p = h;
System.out.println("ANSWER IS:"+p);
int delay2 = 1000;
for (int i = 1; i < 53; i++)
{
while(true)
{
next = rng.nextInt(Ulim) + Llim;
if (!generated.contains(next))
{
generated.add(next);
break;
}
}
if ( i % 2 == 0 )
{count++;
deck1[e] = next;deck1count++;
e++;
}
else {count++;
deck2[f] = next;deck2count++;
f++;
}
System.out.println(""+next);
if(next==p)
{break;}
}
if(deck1count==deck2count)
{
count=count-2;
fcard=99;}
final Timer timer2 = new Timer();
timer2.schedule(new TimerTask(){
public void run(){
do
{
System.out.println("dec2 "+deck2[z]);
String a = Integer.toString(deck2[z]);
String c = "C:\\Users\\COMPUTER\\Desktop\\deck\\"+a+".png";
l3.setIcon(new ImageIcon(c));
System.out.println("dec1 "+deck1[z]);
String b = Integer.toString(deck1[z]);
String d = "C:\\Users\\COMPUTER\\Desktop\\deck\\"+b+".png";
l4.setIcon(new ImageIcon(d));
System.out.println("count"+count);
z++;
count=count-2;
if(fcard==99&&count<0)
{l3.setIcon(new ImageIcon("C:\\Users\\COMPUTER\\Desktop\\deck\\99.png"));
}
}while(count>0&&z==p);
if(count<0)
{timer2.cancel();
reschk=11;
timer2.purge();
}
}
},delay2, 1000);
还有另一组代码写在标签的MouseClicked事件上,但我不认为这对它有多大帮助。 我试过了:
classname.this.dispose();
classname classname = new classname();
但它只是关闭整个程序。还有其他方法可以重置游戏吗? 谢谢阅读。 任何帮助将不胜感激。
答案 0 :(得分:3)
您显然拥有更新的值,以便您可以在不同的状态下表示您的游戏。如果要重新启动游戏,只需将所有这些值设置回原始起始值即可。您可以为此编写一个Restart方法。
此外,dispose()旨在关闭窗口。
编辑:没有神奇的方法可以调用来重置你的程序。
答案 1 :(得分:2)
util.Timer
,否则util.Timer
的输出应为out of EDT。答案 2 :(得分:1)
将游戏状态保持在一个不同的类中,并用新的实例替换它。