Новости | Новинки | Контакты

2D в 3D

Итак, как я уже говорил, нам не с чем сравнивать положение нашего объекта, поэтому он так странно двигается. Для этой главы нам понадобятся: код из прошлого урока, и текстура. Что такое текстура? Для тех кто не знает попробую объяснить:
Текстура – это картинка в любом формате (самые популярные это .jpg, .bmp, .tga, .pcx, .png и.т.д.), которой мы закрашиваем какой-нить объект. Если объект большой, а текстура – нет, то она накладывается как бы повторяющимися квадратами. Вы наверняка видели в каких нибудь трёхмерных играх повторяющуюся траву, скалы – где-то это видно сразу, где-то сильно скрыто. Когда создаётся объект, он создаётся белым, а когда мы его текстурируем – то получается покрываем его картинкой – текстурой. Ну, будем надеяться, что кто этого не знал – примерно понял. В общем возьмите любую картинку из перечисленных форматов, и поместите её в ту же папку, где у вас сохранён этот код программы. Сделаем мы так: создадим плоскость, которая будет находиться на одном месте, и относительно неё будет хорошо видно, что наш кубик всё таки движется.

 

pln=CreatePlane()


Эта команда, также как и остальные команды создаёт объект, на этот раз плоскость (Plane). Что это такое? Ну, плоскость – это и есть плоскость. Она плоская и бесконечная. Да, один момент – плоскость видна только с одной стороны – с другой она невидимая (как и спрайт, кстати)! Поставьте эту команду перед циклом, после создания куба, и если вы запустите программу… лучше не надо! J Перейдём-ка мы сразу дальше! После создания плоскости загрузим текстуру из файла:

 

tex=LoadTexture("Picture.bmp")


Эта команда загружает текстуру из файла Picture.bmp (это у меня так картинка называлась, а вы измените имя файла в кавычках на своё (кавычки нужно оставить), кстати, там можно писать полный путь к файлу, например “C:\Games\MyGame\MyPic.jpg” или “.\Data\Pics\Texture.jpg”) Так, плоскость есть, текстура есть – осталось только затекстурировать эту плоскость:

 

EntityTexture pln,tex


Синтакс: EntityTexture объект, текстура – эта команда элементарно покрывает заданный объект заданной текстурой J. Да, и ещё одно – эта текстура наверняка будет смотреться мелко, поэтому я советую вставить такую команду после загрузки текстуры:

 

ScaleTexture tex,10,10


Она просто расширяет данную текстуру в10 раз по ширине и в 10 раз по высоте. Вот, вроде, и всё готово! Теперь у нас внизу есть плоскость, а куб как бы ездит по ней! Весь код:


Graphics3D 640,480,16,1

SetBuffer BackBuffer()

cam=CreateCamera()

PositionEntity cam,0,5,-10

lit=CreateLight()

cub=CreateCube()

ScaleEntity cub,1,.5,2

pln=CreatePlane()

tex=LoadTexture("Picture.bmp")

ScaleTexture tex,30,30

EntityTexture pln,tex

Repeat

If KeyDown(200) MoveEntity cub,0,0,.1

If KeyDown(208) MoveEntity cub,0,0,-.1

If KeyDown(203) TurnEntity cub,0,1,0

If KeyDown(205) TurnEntity cub,0,-1,0

PointEntity cam,cub

UpdateWorld

RenderWorld

Flip

Until KeyHit(1)

End


…а теперь попробуйте сами затекстурировать куб!

Автор: Scaven Razor Blade
http://unblitz.narod.ru/
scaven@bk.ru

 
© 2007 Независимый проект - сайт команды Simplesoft Studio 3D' team
 
Видео картинки.; Sky link: sky link sky link.; обои бодибилдинг спортивное питание для набора мышечной массы; интернет бесплатная реклама; быстрое соблазнение на 100; смотреть фильм, фильм скачать бесплатно