2013-04-16 66 views
1

我正在用java製作迷宮比賽。我在遊戲中添加了玩家和時間限制。現在我要在這個遊戲中添加分數。我用這個代碼做這個任務.....在java比賽中顯示比分

else if(win) 
{ 
long end = System.currentTimeMillis(); 
long time=end-startTime; 
JOptionPane.showMessageDialog(null, time); 
//System.exit(0); 
//g.drawImage(m.getWinn(), 32, 32, null); 
//JOptionPane.showMessageDialog(this, "Winner"); 
} 

這裏的JOptionPane持續顯示時間。我怎麼可以只顯示一次或像「你的分數:3450」獲獎消息

+1

您在哪裏初始化'startTime'?您需要在遊戲循環中執行該操作,而不是在應用程序初始化時執行該操作。然後,您需要在新遊戲開始時重置該值。 –

+0

這裏是代碼.. public board() { \t \t startTime = System.currentTimeMillis(); \t \t m = new Map(); \t \t p = new Player(); \t \t addKeyListener(new Al()); \t \t setFocusable(true); \t timer = new Timer(25,this); \t \t timer.start(); \t} –

+0

爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

1

此代碼:

long end = System.currentTimeMillis(); 
long time=end-startTime; 
JOptionPane.showMessageDialog(null, time); 

它自己會顯示以毫秒爲單位的時間,因爲比賽開始一次。

我怎麼可以只顯示一次或像一個成功的消息「你的分數:3450」

該原則同樣適用。使用您的值爲time,您可以簡單地致電

JOptionPane.showMessageDialog(null, "Your score : " + time); 
+0

但問題仍然存在。時間以遞增的順序顯示,幾次後程序將掛起。請幫我在一次演出後終止節目。 –

+0

此代碼是否在循環中? – christopher

+0

不,這是總的構造函數。我沒有使用任何循環 –