2017-02-05 5 views
1

поэтому у меня есть эта маленькая 2-я игра, над которой я просто работаю. Я не так хорош в java, но я все хорошо понимаю. Но я хочу это сделать, когда мой персонаж выстрелит из пули, он больше не стреляет в течение 2 секунд. Или какая-то задержка. Я пробовал несколько вещей, но он просто не работал бы с тем, чего я пытался добиться. Это то, что я использую, чтобы стрелять из пули.Таймер в java (задержка на действиях)

if (Mouse.next() && Mouse.isButtonDown(0)) { 
     t.scheduleAtFixedRate(task, 0, 10000); 
     Game.bullets.add(new Bullet(new Vector2f(position.x + 25, position.y + 19), new Vector2f(position.x, 0))); 
    } 

Благодаря

+0

Простой способ будет хранить время последнего снимка в переменной и проверять каждую кнопку мыши, если метка старше 2 сек. Но есть гораздо больше способов архивировать то, что вы хотите. – Blobonat

ответ

1
  1. Создать переменный класс для хранения в последний раз выстрелило
  2. Экономии времени последнего выстрела в этих переменных
  3. Сравнить текущее время и значение переменного на съемки события и решить, это разрешено выстрелил снова или нет.

Что-то вроде:

if (Mouse.next() && Mouse.isButtonDown(0) && (System.currentTimeMillis() - lastShotTime >= 2000)) { 
    t.scheduleAtFixedRate(task, 0, 10000); 
    Game.bullets.add(new Bullet(new Vector2f(position.x + 25, position.y + 19), new Vector2f(position.x, 0))); 
    lastShotTime = System.currentTimeMillis(); 
} 
+0

Как сравнить переменную с другим? – Stefan

+0

------- whaaat ??? – Andremoniy

+0

Не обращайте на это внимания, спасибо большое. – Stefan

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