2013-04-16 2 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 (новый Al()); \t \t setFocusable (true); \t таймер = новый таймер (25, этот); \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

Нет, это полный конструктор. Я не использовал никакой петли –

Смежные вопросы