воскресенье, 10 февраля 2013 г.

блоки tdl в матлаб симулинк

trace[lineIndex].cos * (position[0] - trace[lineIndex].begin[0]) +

function turnAndTranslate(lineIndex, position) {

Одним из способов будет перенос системы координат на участок трассы так, чтобы этот участок трассы лежал на одной из осей. Для этого нужно вычесть из координат машины координаты начала отрезка, а затем умножить их на матрицу поворота:

Итак, машину понесло. Тепрь нужно проверить удержался ли пилот на трассе. Трасса представляет собой ломаную, участки которой имеют определённую ширину. Эти линии на трассе находятся под каким-то углом. Таким образом задача формулируется следующим образом: нужно проверить попадает ли точка в прямоугольник, расположеный под каким-то углом.

Дальше вешаем событие изменения ориентации машины на клавиши поворота. Когда она отличается от направления вектора скорости, то он начинает поворачиваться по направлению машины. Скорость поворота этого вектора задаётся эмпирическим коэффициентом SMOOTHING.

this.linearVelocity вектор скорости, заданный в декартовых координатах.

this.carDirection угол, задающий ориентацию машины;

Для начала нужно разделить вектор скорости и направление машины:

Но в той игре ещё у машины был занос (поначалу неудобно, но с ним интереснее). И я решил написать какую-нибудь эмуляцию заноса. По сути занос происходит когда сама машина меняет направление, но её движение не меняет направление вместе с ней. Насколько точно нужно воспроизвести движение с точки зрения физики? Я ставил целью сделать такой занос, который будет похож на реальный.

Реализовать это было просто: у машины есть направление в радианах, по нажатию кнопки у неё вызывается событие rotateLeft или rotateRight. Эти методы просто добавляют или вычитают константное значение изменения угла из направления машины.

стрелка вправо: поворот по часовой стрелке.

стрелка влево: поворот против часовой стрелки;

стрелка вверх: газ;

Управление там было следующее:

Нужно было написать игру на JavaScript. Решил остановиться на примитивных гоночках. Когда я овладел принципами вращения и перемещения по HTML5 Canvas появилась следующая проблема: управление автомобилем. Делая эту игру я вспоминал игру , в кторую я играл на компьютере «Байт».

[Из песочницы] Симуляция движения и заноса машины в игре на JavaScript

Отображать сообщения .

21 сентября 2012 в 01:47

хабрахабр:все записи

Заголовок (необязательно):

Комментариев нет:

Отправить комментарий