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