Показать сообщение отдельно
Старый 24.09.2007, 17:28   #23
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Счастье Re: Редактор карт

Дальше мы немного подправим функцию создания стены и функцию загрузки и сохранения карты. Чем мы сейчас и займемся. Для начала подправим ф-цию создания стены:

Function CreateStena(X#,Y#,Z#,P#,YA#,R#,SX#,SY#,SZ#,TP$)
o.MObject=New MObject
o\entity=CreateCube()
o\TP$=TP$
PositionEntity o\entity,X#,Y#,Z#
ScaleEntity o\entity,SX#,SY#,SZ#
RotateEntity o\entity,P#,YA#,R#
EntityPickMode o\entity,2
EntityTexture o\entity,LoadTexture(o\TP$)
End Function

Надо было лишь всего-то добавить две строчки кода. Первая (o\TP$=TP$) у нас отвечает за имя файла текстуры. Вторая (EntityTexture o\entity,LoadTexture(o\TP$))
отвечает за применение данной текстуры к объекту. А и еще в функции появился новый параметр - TP$ - это путь к файлу текстуры.

Идем далее. Модифим сохранение карты:

Function WriteMap(Path$)
file=WriteFile(Path$)
For m.MObject = Each MObject
WriteFloat file,EntityX(m\entity)
WriteFloat file,EntityY(m\entity)
WriteFloat file,EntityZ(m\entity)
WriteFloat file,EntityPitch(m\entity)
WriteFloat file,EntityYaw(m\entity)
WriteFloat file,EntityRoll(m\entity)
WriteFloat file,MeshWidth(m\entity)
WriteFloat file,MeshHeight(m\entity)
WriteFloat file,MeshDepth(m\entity)
WriteString file,m\TP$
Next

Сдесь мы добавили одну строку которая отвечает за сохранение пути к файлу текстуры(TP$). Примечание: загружать данные из файла нужно в такой последовательности как они были записаны в файл( эт наверное применимо только к Блитцу).

Далее - модифим загрузку карты:

Function LoadMap(Path$)
fil=ReadFile(Path$)
;Удаляем старые стены
For m.MObject = each MObject
FreeEntity m\entity
Delete m
Next
While Not Eof(file)
X#=ReadFloat(File)
Y#=ReadFloat(File)
Z#=ReadFloat(File)
P#=ReadFloat(File)
YA#=ReadFloat(File)
R#=ReadFloat(File)
SX#=ReadFloat(File)
SY#=ReadFloat(File)
SZ#=ReadFloat(File)
TP$=ReadString(file)
CreateStena(X#,Y#,Z#,P#,YA#,R#,SX#,SY#,SZ#,Tp$)
Wend
End Function

Вот тута тоже мы добавили одну строку которая отвечает за загрузку из файла строковой переменной TP$ куда записан путь к файлу текстуры. И добавили один новый парметр в функцию(CreateStena(X#,Y#,Z#,P#,YA#,R#,SX#,SY#,SZ# ,Tp$)) в данном случае TP$.

Вот наш редактор теперь научился менять текстуры у объектов.
__________________

(Offline)
 
Ответить с цитированием