8. Фишки с привязками
А вот что можно сделать, если правильно использовать технологию привязок:
Алгоритм галактики:
Если вы запустите этот код, то увидите как шарики делают поступательное движение (летают J) вокруг куба по кругу. На самом деле всё проще! Эти шары просто находятся в родительской зависимости от куба, и остаются на месте, а поворачивается только куб – ну, а они вместе с ним! Так, допустим, что нам этот алгоритм понравился, и мы захотели всунуть его в нашу игру, но нас немного смущает этот куб в середине. Конечно, можно его как подобает затекстурировать, и сказать, мол, это наш антигравитационный голографический транс-хренолятор, или сделать сферу, и сказать, что это чёрная дырища (и такое в нашей практике бывает, когда лень чего-нить исправлять J), но здесь мы поступим по-другому. Помните, в самом начале я перечислял какими бывают объекты, и упомянул о Пивотах. Так вот – пивот – это просто точка в пространстве, она невидимая, но у неё есть (как и всех остальных объектов) своя система координат, а значит – своё направление. Пивоты – это очень полезные объект, когда дело касается всяких там привязок. Уже догадались, что мы собираемся сделать? Неправильно – мы собираемся заменить этот куб в середине на пивот… А, вы так и подумали?… J Ну, тогда, заменим команду сами знаете чего на команду создания пивота:
Всё – теперь мы можем наслаждаться видом крутящегося скопления звёзд без всяких там лишних вещей!
Но не обязательно делать такую одинарную привязку - можно привязать один объект к другому, который в свою очередь привязан к третьему – тот к четвёртому, и так далее… Для чего это делать? А вот посмотрите пример:
Как видите, привязки играют очень большую роль в программировании игр, и они очень облегчают жизнь. Несколько дополнений:
1) Помните - синтакс команды создания сферы таков: CreateSphere ( количество сегментов, [родитель] ) – очень частой ошибкой является то, что в поле, где указывается количество сегментов, вместо них указывают родителя…
2) Задать привязку можно не только во время создания объекта, но и после этого – командой EntityParent объект, родитель – эта команда привязывает заданный объект к заданному родителю. Вместо родителя можно поставить 0 (ноль, если кто не понял J) – и это «отвяжет» заданный объект от родителя, каким бы страшным этот родитель ни был JJJ…
Ну, и напоследок – то, что можно сделать, изучив технологию привязок:
Ну, вы поняли, как это работает? Ну, давайте – подумайте! Вы же всё-таки программеры – даже если вы задумали всю жизнь программировать один, вам всё равно придётся читать чужие коды – чтобы понять как работает та или иная фишка. А про команду EntityAlpha – посмотрите в хелпе, потому что, даже если вы совершенно ничего не знаете в английском – в хелп придётся обращаться очень часто, поэтому, лучше учиться сейчас… J.
| Оглавление:
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. Выведение
|