Я пытаюсь заставить актера перемещаться случайным образом каждые X секунд. Код для действия таков:Актер libGDX не будет вести себя нормально при движении
@Override
public void act(float delta)
{
super.act(delta);
if (delta > (float)(rand.nextInt(5)+3))
{
switch(rand.nextInt(3))
{
case 0:
moveBy(3,0);
break;
case 1:
moveBy(-3,0);
break;
case 2:
moveBy(0,3);
break;
case 3:
moveBy(0,-3);
break;
}
}
}
Отладка отображает только X, увеличивающееся сверхурочное время, и оно останавливается на ~ 103. В чем проблема? Случайный вводится в конструкторе с семенем System.currentTimeMillis().
Не уверен, почему он вообще движется. 'delta' - это время с момента последнего кадра, поэтому обычно оно будет выглядеть как' 0.016667f'. Поэтому ваш оператор if никогда не должен выполняться. Кроме того, 'nextInt' является эксклюзивным, поэтому' nextInt (3) 'является числом от 0 до 2, поэтому случай 3 никогда не будет выполнен. – Tenfour04