Показать сообщение отдельно
Старый 03.09.2010, 21:18   #1019
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 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
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием