У меня проблемы с пониманием этой строки кода - PullRequest
0 голосов
/ 06 января 2012

Как следует из названия ..

playerVelocity.x = playerVelocity.x  *deceleration +acceleration.x *sensitivity;

Я не понимаю, что здесь происходит.Или как это возможно.Как я могу взять скорость и умножить ее на замедление скорости, а затем добавить ее снова.Это просто не имеет смысла для меня.

То, как я это читаю ... У меня есть playerVelocity, и я умножаю его на то, что на самом деле замедляет его, затем я добавляю его снова.

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

Кто-нибудь возражает, объяснив это мне?

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Учтите, что velocity = velocity*deceleration;, применяемое через равные промежутки времени, просто обеспечивает постоянное замедление.Затем добавление к этому acceleration*sensitivity через те же регулярные интервалы просто приводит к некоторому переменному ускорению к объекту, замедляющему в противном случае.

Сеть будет объектом, который медленно замедляется, если пользователь не вводит его «вперед».

3 голосов
/ 06 января 2012

deceleration - это некоторый коэффициент, описывающий, как скорость замедляется в отсутствие ускорения.sensitivity - это коэффициент, описывающий, как acceleration влияет на velocity.Так что эта линия делает обновление скорости на основе этих коэффициентов.Вероятно, это происходит в каком-то временном цикле, так что скорость соответствующим образом изменяется на этих этапах вашей программы.Без последней половины это было бы просто:

velocity = velocity * deceleration;

Если deceleration меньше 1, это соотношение означает, что скорость в конечном итоге будет стремиться к 0. Добавление того, что, как я полагаю, является входным ускорением пользователя, вы получите свой код:

velocity = velocity * deceleration + acceleration * sensitivity;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...