Как определить координаты направления движения
задача следующая нужно имея имеются кнопки назад вперед, влево, вправо, последние 2 вращают объект, как двигать объект всегда вперед - относительно того куда объект направлен в данный момент, имея угол поворота объекта?
![]() |
Эм.. сделать скорость ускорение по осям и каждую долю задержки изменять начальные координаты в зависимости от скорости ? :)
Я просто не совсем понял ваш вопрос? Вы не можете куб переместить ? Или вращать его до нужно вам значения 7! |
нужно каждый шаг, получать координаты x2 y1 имея x2 y2 и угол поворота
|
Цитата:
|
дык было давно, уже даже сформулировать не могу нормально)
|
Цитата:
Если не вспомниться, или не было, то нех тебе вообще к компьютеру подходить ,кроме как почту посмотреть, да в одноклассниках посидеть. |
Цитата:
{ zeroPoint: {x: 0, y: 0}, interpolateCoords: function (directionRad, moveDelta, moveProgress, fromPoint) { var x = GameObject.interpolateX(directionRad, moveDelta.x, moveProgress, fromPoint.x); var y = GameObject.interpolateY(directionRad, moveDelta.y, moveProgress, fromPoint.y); return { x: x, y: y }; }, interpolateX: function (directionRad, delta, progr, from) { return Math.cos(directionRad) * delta * progr + from; }, interpolateY: function (directionRad, delta, progr, from) { return Math.sin(directionRad) * delta * progr + from; } } |
Цитата:
|
Цитата:
|
достаточно вспомнить, что cos это координата радиус точки в прямоугольном треугольнике, лежащая на окружности, то есть если тело движется под углом 60градусов, то при радиус векторе(гипотенузе, прощеговоря)(ее вы сами выбираете) допустим 10, след координата точки будет 10 * cos(60) = 5. Аналогично с sin, только синус это координата по y
|
короче, выбираешь шаг - в зависимости от него тело будет двигаться резче. Допустим этот шаг = 10. Тогда (если тело движется линейно, в твоем случае это и есть так) ты можешь найти dx,dy (дельта)
1) cos(60)*10=5 2)sin(60) * 10 ≈ 8.6 и короче, теперь каждый раз, принажатии на стрелочки твои, тело будет вот так смещаться |
Часовой пояс GMT +3, время: 21:19. |