Показать сообщение отдельно
Старый 01.03.2012, 19:10   #14
Devilox
ПроЭктировщик
 
Аватар для Devilox
 
Регистрация: 14.01.2012
Адрес: Зеленоград
Сообщений: 192
Написано 5 полезных сообщений
(для 9 пользователей)
Ответ: Дубликаты дверей

L-ee-X, я этот исходник в БлитзСкуле смотрел, уж очень он запутанный для новичка.
Жека, я всё написал, вот только он поднимает один и тот же блок:
Graphics3D 640,480

SetBuffer BackBuffer()

Const t_player=1, t_block=2

Type doors
    Field ent
End Type

player=CreateSphere()
EntityType player, t_player

cam=CreateCamera(player)

bl=CreateCube()
PositionEntity bl,0,0,5
EntityType bl, t_block
HideEntity bl

Collisions t_player, t_block,2,3

Dim AllDoors.doors(3)

For i=0 To 3
	AllDoors(i) = New doors
	AllDoors(i)\ent = CopyEntity(bl)
Next
	PositionEntity AllDoors(0)\ent,10,0,0
	PositionEntity AllDoors(1)\ent,5,0,0
	PositionEntity AllDoors(2)\ent,0,0,0
	PositionEntity AllDoors(3)\ent,-5,0,0

While Not KeyDown(1)

For i=0 To 3
	Local door% = EntityCollided(player, t_block)
	If door<>0
		MoveEntity AllDoors(i)\ent,0,0.2,0
		Exit
	EndIf
Next
		

TurnEntity player, 0, 0 -MouseXSpeed()*0.1, 0
TurnEntity cam, MouseYSpeed()*0.1, 0, 0			
MoveMouse GraphicsWidth()/2, GraphicsHeight()/2
RotateEntity cam, EntityPitch#( cam ), 0, 0

If KeyDown(17) MoveEntity player,0,0,0.5
If KeyDown(31) MoveEntity player,0,0,-0.5
If KeyDown(30) MoveEntity player,-0.5,0,0
If KeyDown(32) MoveEntity player,0.5,0,0


UpdateWorld()
RenderWorld()

Flip

Wend

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