2014-12-14 3 views
1

Я делаю игру в java. Я хочу, чтобы обновил скорость перемещения объекта вниз каждый раз, когда оценка («счетчик») добавляется один раз. Я пробовал использовать операторы if, но нет никакого способа, чтобы я мог перечислить из 1-го количества баллов для моего кода. Любая помощь будет оценена!Создание работы таймера с помощью цикла for

if (completed > 0) { 
     counter += completed; 
if (counter == 1) { 
       t1.stop(); 
       t1 = new Timer(250, ap); 
       t1.start(); 
      } 
      if (counter == 2) { 
       t1.stop(); 
       t1 = new Timer(200, ap); 
       t1.start(); 
      } 
      if (counter == 3) { 
       t1.stop(); 
       t1 = new Timer(10, ap); 
       t1.start(); 
      } 
+1

Вы хотите, чтобы объект ускорялся каждый раз, когда счет поднимался? – Aggressor

+0

Просто создайте функцию, увеличивая время (int: i), и она принимает переменную класса t1, останавливает ее, затем начинает с нового таймера (i * 100) – Aggressor

+0

@Aggressor, я не думаю, что Timer (i * 100), потому что это сделает объект SLOWER. По сути, я хочу, чтобы число в новом таймере (#, ap) было ниже AS counter ++ –

ответ

0
function decreaseTime(score:Int) 
{ 
    var time:float = 500 * (1/score) 
    //ap from your other code 
    _t1.stop(); //<---- member variable 
    _t1 = new Timer(time, ap); 
    _t1.start(); 
} 

Чем выше показатель, тем быстрее таймер будет идти

Дело в том, что вам нужно решить, сколько ваше время ускоряется. Вы также могли бы сделать что-то вроде каждой точки, уменьшая время на 10, и в этом случае у вас будет

var time:float = 500 - (score*10) 
0

Используйте Timer:

Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 

    @Override 
    public void run() { 
     if (completed > 0) { 
    counter += completed; 
    if (counter == 1) { 
      t1.stop(); 
      t1 = new Timer(250, ap); 
      t1.start(); 
     } 
     if (counter == 2) { 
      t1.stop(); 
      t1 = new Timer(200, ap); 
      t1.start(); 
     } 
     if (counter == 3) { 
      t1.stop(); 
      t1 = new Timer(10, ap); 
      t1.start(); 
     } 

    } 
}, delay, period); 

Где delay это миллисекунды до таймера следует выполнить задачу в первый раз, и period задержка между выполнением.

+0

Если я задерживаю, не заставит ли таймер пойти медленнее? Я хочу, чтобы таймер # уменьшался, а счетчик увеличивался. –

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