Показать сообщение отдельно
Старый 27.02.2011, 21:02   #14
}{@KeR
ПроЭктировщик
 
Регистрация: 01.02.2011
Сообщений: 148
Написано 7 полезных сообщений
(для 8 пользователей)
Ответ: Как взаимодействовать с миром?

Вот тебе пример радара

Graphics3D 800,600
SetBuffer BackBuffer
()


Global 
camera CreateCamera()
CameraRange camera,0.1,1000

Global light CreateLight()

Global 
radar CreateSphere(5)
EntityParent radar,camera
ScaleEntity radar
,0.2,0.2,0.01
PositionEntity radar
,0.7,-0.3,1
EntityFX radar
,1
EntityColor radar
,100,100,255

Global player_radar_ent CreateSphere()
EntityParent player_radar_ent,radar
ScaleEntity player_radar_ent
,0.05,0.05,0.05
PositionEntity player_radar_ent
,0,0,-2
EntityFX player_radar_ent
,1

Type entity
    Field ent
    Field radar_ent
    Field e_type 
playerenemy
End Type


For loop 1 To 20
    e
.entity = New entity
    e
\ent CreateCube()
    
e\radar_ent CreateCube()
    
EntityParent e\radar_ent,radar
    EntityFX e
\radar_ent,1
    ScaleEntity e
\radar_ent,0.05,0.05,0.05
    PositionEntity e
\ent,Rnd(-20,20),0,Rnd(-20,20)
    
HideEntity e\radar_ent
Next



While Not KeyHit(1)



    If 
KeyDown(200Then MoveEntity camera,0,0,0.1
    
If KeyDown(208Then MoveEntity camera,0,0,-0.1
    
If KeyDown(203Then TurnEntity camera,0,1,0
    
If KeyDown(205Then TurnEntity camera,0,-1,0
    
    updateradar
()
    
UpdateWorld
    RenderWorld
    Flip
Wend
End

Function updateradar()

    For 
e.entity Each entity
        
If EntityDistance#(e\ent,camera) < 10 Then
            
ShowEntity e\radar_ent
            x_dif
# = EntityX(e\ent,True) - EntityX(camera,True)
            
z_dif# = EntityZ(e\ent,True) - EntityZ(camera,True)
            
PositionEntity e\radar_ent,x_dif/10,z_dif/10,-1
        
Else
            
HideEntity e\radar_ent
        End 
If
    
Next
    
End 
Function 
__________________
Ученье свет, а не ученье тень!
(Offline)
 
Ответить с цитированием