Разработчик
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений (для 74 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Так, вот ещё одна проблема. Сделал код сохранения карты и загрузки. НУ вот тут такая проблема: у меня есть 3 вида моделей дерево1, дерево2 и дерево3 ( =)) ). По идее я должен в функции сохранения прописать позицию модели, её угол поворота и размеры. НУ прописал в отдельных циклах:
Function SaveMap(dir$)
file=WriteFile (dir$)
For b.Tree1= Each Tree1
WriteFloat file, EntityX (b\model)
WriteFloat file, EntityY (b\model)
WriteFloat file, EntityZ (b\model)
WriteFloat file, EntityPitch (b\model)
WriteFloat file, EntityYaw (b\model)
WriteFloat file, EntityRoll (b\model)
Next
For c.Tree2= Each Tree2
WriteFloat file, EntityX (c\model)
WriteFloat file, EntityY (c\model)
WriteFloat file, EntityZ (c\model)
WriteFloat file, EntityPitch (c\model)
WriteFloat file, EntityYaw (c\model)
WriteFloat file, EntityRoll (c\model)
Next
For d.Tree3=Each Tree3
WriteFloat file, EntityX (d\model)
WriteFloat file, EntityY (d\model)
WriteFloat file, EntityZ (d\model)
WriteFloat file, EntityPitch (d\model)
WriteFloat file, EntityYaw (d\model)
WriteFloat file, EntityRoll (d\model)
Next
End Function
Размеры не захотел записывать). Так вот на карте создаю сначала 2 зелённых дерева, 3 пожелтевших дерева и 4 осыпавшихся дерева, на разных позициях. После сохраняю карту. Загружаю эту же карту. ВОт код загрузки:
Function LoadMap(dir$)
file=ReadFile(dir$)
For b.Tree1 = Each Tree1
For c.Tree2 = Each Tree2
For d.Tree3 = Each Tree3
Next
Next
Next
While Not Eof(file)
X#=ReadFloat(File)
Y#=ReadFloat(File)
Z#=ReadFloat(File)
P#=ReadFloat(File)
YA#=ReadFloat(File)
R#=ReadFloat(File)
CreateTree1(X#,Y#,Z#,P#,YA#,R#)
X1#=ReadFloat(File)
Y1#=ReadFloat(File)
Z1#=ReadFloat(File)
P1#=ReadFloat(File)
YA1#=ReadFloat(File)
R1#=ReadFloat(File)
CreateTree2(X1#,Y1#,Z1#,P1#,YA1#,R1#)
X2#=ReadFloat(File)
Y2#=ReadFloat(File)
Z2#=ReadFloat(File)
P2#=ReadFloat(File)
YA2#=ReadFloat(File)
R2#=ReadFloat(File)
CreateTree3(X2#,Y2#,Z2#,P2#,YA2#,R2#)
Wend
End Function
так вот, модели создаются на своих местах, но зразные. Т.е. при создании я делаю кучку зелёных моделей , кучку жолтых, кучку с опавшей листвой. В разных позициях. При загрузке почему-то жёлтое деревцо( или два, три...) оказавается в группе зелённых, зелённое в группе желтых и т.д. что делать? вот кодик самих деревьев. Мож вы чё нибудь найдёте.
Type Tree1
Field model
End Type
Function CreateTree1(x#,y#,z#,P#,YA#,R#)
a.Tree1=New Tree1
a\model=LoadMesh ("Data\Models\Trees\Tree1\Bereza.b3d")
RotateEntity a\model,P#,YA#,R#
PositionEntity a\model,x#,y#,z#
;ScaleEntity a\model,SX#,SY#,SZ#
End Function
Function UpdateTree1()
For b.Tree1=Each Tree1
For c.Tree2=Each Tree2
If EntityDistance (b\model,c\model)<=30 Then
FreeEntity b\model
FreeEntity c\model
Delete b
Delete c
Exit
EndIf
Next
Next
End Function
Type Tree2
Field model
End Type
Function CreateTree2(x1#,y1#,z1#,P1#,YA1#,R1#)
a.Tree2=New Tree2
a\model=LoadMesh ("Data\Models\Trees\Tree2\Bereza.b3d")
PositionEntity a\model,x1#,y1#,z1#
RotateEntity a\model,P1#,YA1#,R1#
End Function
Type Tree3
Field model
End Type
Function CreateTree3(x2#,y2#,z2#,P2#,YA2#,R2#)
a.Tree3=New Tree3
a\model=LoadMesh ("Data\Models\Trees\Tree3\bereza.b3d")
RotateEntity a\model,P2#,YA2#,R2#
PositionEntity a\model,x2#,y2#,z2#
End Function
__________________
Самый первый и самый великий программист - это Бог.
|