Показать сообщение отдельно
Старый 30.01.2007, 14:42   #4
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
HolyDel пасиб! то что надо!

теперь пытаюcb этот код прuладить к типам ну чтоб не один кубик толкать а много! и всебы хорошо но иногда тoлкаются не один объект а несколько..
подозреваю что вот ето надо моменять
If EntityCollided (plr, typeBox))
на чтото похоже но содержащие именно тот обект который толкаю а не весь тип)
ну вот код:
Graphics3D 800, 600, 32, 2 
SetBuffer BackBuffer() 
Const Type_Plr=1, TypeBOX=2 
;===========================
Type TBox
Field ent
Field status=0
Field A,B
End Type 
Global bx.TBox
Global pla#=30 
Global cu#=0 
;======================
bx.Tbox=New TBox 
bx\ent=CreateCube()
PositionEntity bx\ent ,0,1,10
EntityType bx\ent,TypeBOX 
bx.Tbox=New TBox 
bx\ent=CreateCube()
PositionEntity bx\ent ,5,1,10
EntityType bx\ent,TypeBOX 
 
plr=CreateSphere() 
EntityRadius plr,1
PositionEntity plr,0,1,5 
EntityColor plr,0,128,128 
EntityType plr, Type_Plr 
cam=CreateCamera() 
PositionEntity cam,0,15,0 
PointEntity cam,plr
EntityParent cam,plr
light=CreateLight(cam) 
Collisions Type_Plr, TypeBOX,2,3 
Collisions TypeBOX, Type_Plr,2,3 
 
 
 
While Not KeyDown(1) 
If KeyDown(200) Then MoveEntity plr,0,0,pla*0.001 
If KeyDown(208) Then MoveEntity plr,0,0,-pla*0.001 
If KeyDown(203) Then MoveEntity plr,-pla*0.001 ,0,0
If KeyDown(205) Then MoveEntity plr,pla*0.001 ,0,0
MoveBox(plr, TypeBOX)
 
RenderWorld 
UpdateWorld 
 
Flip 
Wend 
End
Function MoveBox(mplr,typBox)
For bx.TBox = Each TBox 
If EntityCollided (mplr, typBox) Then 
cu=pla/100 
bx\A=EntityX(mplr)-EntityX(bx\ent)
bx\B=EntityZ(mplr)-EntityZ(bx\ent)
If bx\A=0 And bx\B<0 Then TranslateEntity bx\ent,0,0,cu 
If bx\A=0 And bx\B>0 Then TranslateEntity bx\ent,0,0,-cu 
If bx\B=0 And bx\A>0 Then TranslateEntity bx\ent,-cu,0,0 
If bx\B=0 And bx\A<0 Then TranslateEntity bx\ent,cu,0,0
End If
Next 
End Function 
(Offline)
 
Ответить с цитированием