Я пытаюсь написать кусок кода, который позволит объекту «разбегаться» на 500 пикселей случайным образом. У меня есть случайное время, это конкретное расстояние, с которым у меня проблема.
Это для задания, где я должен исследовать, как это сделать, но мне не повезло найти что-либо. Я попытался создать инкрементную переменную, но это не считается достаточно быстро, я уверен, что это связано с этим уравнением для движения объекта: xPosition + = xSpeed * xDirection ;. Я просто не могу понять это. Код также показывает некоторые другие функции, такие как снижение скорости до предыдущей скорости после того, как 500 пикселей были покрыты.
Другая проблема заключается в том, что в сетке, над которой я работаю, есть положительные и отрицательные числа, поэтому я не уверен, но нужно ли мне это учитывать?
if (xSpeed >= 10)
{
if (xPosition < 0)
{
distance = distance + 1;
}
if (xPosition > 0)
{
distance = distance + 1;
}
}
if (collisionNum == ranCollision - 1)
{
dashPosStart = xPosition;
}
// Method for stopping dash
if (distance >= 500)
{
while (xSpeed > startSpeed)
{
xSpeed--;
}
ySpeed = xSpeed / 2;
}
if (distance == 500)
{
dashPosFin = xPosition;
}
xPosition += xSpeed * xDirection; // Horizontal movement
yPosition += ySpeed * yDirection; // Vertical movement
Расстояние должно учитываться для каждого пикселя, но кажется, что оно считается намного медленнее, чем это, и медленнее, чем 60 раз в секунду (скорость работы программы). Я уже несколько дней пытаюсь это решить и просто не могу обойти это. Любая помощь / совет будет отличным! Спасибо.