4. Свобода и Власть 3Д (1) Круто,
конечно, перемещаться стрейфом, но это не всегда то, что нам нужно. В
этот раз кое-что переделаем – две последние строчки проверки нажатия клавиш
немного изменим. Теперь, когда мы будем нажимать кнопки ВЛЕВО и ВПРАВО он
будет поворачиваться влево и вправо (для тех, кто не понял - раньше он
перемещался влево и вправо J). Итак, строчки:
Нужно
заменить на:
Вот
у нас уже что-то вроде автогонок вырисовывается (точнее кубогонок J).
Так, команду TurnEntity вы уже знаете, но
обратите внимание, что если мы хотим, чтобы наш объект вертелся именно влево-вправо,
мы поворачиваем его по оси Y. Чтобы
немного было понятнее, где у него передняя часть, а где боковые, я предлагаю
его немного трансформировать!
Эту
команду нужно вставить после команды создания куба (смотрите не вставьте её в
цикл J).
Синтакс:
ScaleEntity объект,
трансформация по X, по Y, по Z. То есть в
примере мы оставляем такой же размер
по X (ширину) (1 значит, что мы
оставляем тот же размер), трансформируем размер по Y (высоту) до 0.5 от его размера (то есть просто уменьшаем в 2 раза)
– получается как бы сплющиваем его сверху, и в два раза увеличиваем размер по
Z (длину) – то есть растягиваем его в длину. Получился
такой… кирпич… Вот
ездит этот кирпич, ездит, да заезжает за экран, так что мы перестаём его
видеть. А как бы сделать так, чтобы не терять его из виду? Здесь нам поможет
такая замечательная команда PointEntity
объект1, объект2 – эта команда просто
поворачивает объект1 в сторону объекта2. То есть если мы хотим, чтобы наша
камера всегда следила за нашим кубиком, нам просто нужно вставить эту команду
в цикл! Вот
как это делается:
Эту
команду можно вставить в любое место в цикле, но, чтобы у нас было всё по
порядку, поставим её после команд проверяющих нажатия клавиш. Вот
полный код:
Опять
же столько всего, только в 18 строчках! Если
запустить программу, то видно, что камера как бы следит за кубиком, хотя это
плохо понятно – такое чувство, как будто он ездит сам как хочет. Всё это
потому, что у нас нет ничего, с чем мы могли бы сравнивать его положение. |
Оглавление: 0. Введение 5. 2Д в 3Д 7. Родительская зависимость или Привязки 9. Коллизион Детекшн или как устроен мир… 10. Первая 3Д игра. Часть 0 – основы движка 11. Первая 3Д игра. Часть 1 – разработка движка 12. Первая 3Д игра. Часть 2 – устранение багов 13. Первая 3Д игра. Часть 3 – внешний вид 14. Первая 3Д игра. Часть 4 – от массива к спискам 15. Первая 3Д игра. Часть 5 – оптимизация кода 16. Первая 3Д игра. Часть 6 – завершение 17. Выведение |