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. Выведение
|