14. Первая 3Д игра. Часть 4 – от массива к спискам В
этой части не произойдёт никаких изменений во внешнем виде игры, не изменится
геймплей и даже не увеличится частота кадров, но без этой части нам не пройти
на следующую… Сейчас мы будем оптимизировать движок, делать его более
понятным и унифицированным! Для
начала, мы переведём наши кубики из массива в список (надеюсь вы хорошо усвоили
мой перевод туториала по БлитцБэйсику? J). Зачем это нужно – поймёте позже… Итак, грядут
большие изменения в программе. Для
начала создадим новый тип - Walls:
Эту
строчку поместите до констант. Здесь мы создаём новый тип с одним полем – model. В этом поле у нас будет содержаться меш кубика… Далее,
можно стереть строчку
Так
как нам теперь не надо будет задавать, какое именно количество элементов мы
будем использовать… Дальше,
весь процесс создания кубиков нам нужно переделать:
Здесь
мы создаём новый элемент типа Walls, и создаём
новый куб в его поле model, ну остальное всё осталось
также… Теперь мы свободно можем поставить любую другую конечную цифру вместо
29 (раньше нам бы понадобилось менять конечное количество элементов когда мы
описывали массив…) Дальше
также меняем создание стен:
К
сожалению у нас не получится так же как раньше сначала создать сразу 4 модельки,
а потом их расставлять и трансформировать (вернее вряд ли получится это
сделать написав меньшее количество строк и не усложняя), поэтому создадим 4
стены и расставим их по отдельности (чего нам места жалко, что ли? J)… И дальше
поменяем цикл проверки пересечения модельки цилиндра и кубиков в главном
цикле (это когда мы ставим цилиндр в новое место – помните?) – поменяем
строчки:
…на:
Здесь
даже проще получается – т.е. независимо от того, насколько большой у нас
список, мы просто «пролистываем» его от начала до конца J Всё
– переход на списки перешёл успешно! Можете запустить игру – видите, никаких
изменений! J… Возможно
кому-то покажется, что это лишь усложнение, но это только видимость. Списки
намного удобнее чем массивы, если научится с ними работать. Не нужно
указывать, какое именно количество элементов вы собираетесь использовать, а
значит, игра стала более гибкой – т.е. сейчас мы можем задать любое число во
время создания кубиков. Допустим,
если бы мы захотели изменить цифру, если бы мы использовали массив, то
нам надо было бы поменять цифру 1) Когда мы указываем какое кол-во элементов
у нас будет в массиве; 2) Когда мы создаём стены (потому что стены мы
создавали последними элементами) 3) В главном цикле – когда мы делали
проверку на пересечение цилиндра и кубиков – опять же кол-во кубиков
изменилось, значит и количество проверок должно измениться… 3 замены…
Конечно, это немного, но ведь и игрушка у нас маленькая. Представьте, что
было бы в большом проекте!
|
Оглавление: 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. Выведение |