Как переместить объект на 500 пикселей только с разной скоростью через случайные интервалы? - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь написать кусок кода, который позволит объекту «разбегаться» на 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 раз в секунду (скорость работы программы). Я уже несколько дней пытаюсь это решить и просто не могу обойти это. Любая помощь / совет будет отличным! Спасибо.

1 Ответ

1 голос
/ 05 ноября 2019

Вы всегда увеличиваете расстояние на единицу;таким образом, для черточки всегда требуется 500 кадров, а не расстояние в 500 пикселей.

Самое короткое решение заключается в увеличении расстояния на скорость черты в каждом кадре (убедитесь, что вы соответственно обрабатываете отрицательные значения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...