5. 2Д в 3Д Итак,
как я уже говорил, нам не с чем сравнивать положение нашего объекта, поэтому
он так странно двигается. Для
этой главы нам понадобятся: код из прошлого урока, и текстура. Что такое
текстура? Для тех кто не знает попробую объяснить: Текстура
– это картинка в любом формате (самые популярные это .jpg, .bmp, .tga, .pcx, .png и.т.д.),
которой мы закрашиваем какой-нить объект. Если объект большой, а текстура –
нет, то она накладывается как бы повторяющимися квадратами. Вы наверняка
видели в каких нибудь трёхмерных играх повторяющуюся траву, скалы – где-то
это видно сразу, где-то сильно скрыто. Когда создаётся объект, он создаётся
белым, а когда мы его текстурируем – то получается покрываем его картинкой –
текстурой. Ну, будем надеяться, что кто этого не знал – примерно понял. В
общем возьмите любую картинку из перечисленных форматов, и поместите её в ту
же папку, где у вас сохранён этот код программы. Сделаем
мы так: создадим плоскость, которая будет находиться на одном месте, и
относительно неё будет хорошо видно, что наш кубик всё таки движется.
Эта
команда, также как и остальные команды создаёт объект, на этот раз плоскость
(Plane). Что это такое? Ну, плоскость – это и есть плоскость.
Она плоская и бесконечная. Да, один момент – плоскость видна только с одной
стороны – с другой она невидимая (как и спрайт, кстати)! Поставьте
эту команду перед циклом, после создания куба, и если вы запустите программу…
лучше не надо! J Перейдём-ка мы сразу дальше! После
создания плоскости загрузим текстуру из файла:
Эта
команда загружает текстуру из файла Picture.bmp (это у меня так картинка называлась, а вы измените имя
файла в кавычках на своё (кавычки нужно оставить), кстати, там можно писать
полный путь к файлу, например “C:\Games\MyGame\MyPic.jpg” или “.\Data\Pics\Texture.jpg”) Так,
плоскость есть, текстура есть – осталось только затекстурировать эту
плоскость:
Синтакс:
EntityTexture объект, текстура –
эта команда элементарно покрывает заданный объект заданной текстурой J. Да,
и ещё одно – эта текстура наверняка будет смотреться мелко, поэтому я советую
вставить такую команду после загрузки текстуры:
Она
просто расширяет данную текстуру в10 раз по ширине и в 10 раз по высоте. Вот,
вроде, и всё готово! Теперь у нас внизу есть плоскость, а куб как бы ездит по
ней! Весь
код:
…а
теперь попробуйте сами затекстурировать куб! |
Оглавление: 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. Выведение |