; Пример ProjectedZ
; ---------------------
Graphics3D 640,480
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,2,-10
light=CreateLight()
RotateEntity light,90,0,0
plane=CreatePlane()
ground_tex=LoadTexture("media/Chorme-2.bmp")
EntityTexture plane,ground_tex
cube=CreateCube()
cube_tex=LoadTexture("media/b3dlogo.jpg")
EntityTexture cube,cube_tex
PositionEntity cube,0,1,0
While Not KeyDown( 1 )
If KeyDown(
205 )=True Then TurnEntity camera,0,-1,0
If KeyDown( 203 )=True Then
TurnEntity camera,0,1,0
If KeyDown( 208 )=True Then MoveEntity
camera,0,0,-0.05
If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05
; Преобразуем 3D-координаты куба в 2D-координаты экрана
CameraProject(camera,EntityX(cube),EntityY(cube),EntityZ(cube))
RenderWorld
;Если куб в поле зрения, пишем надпись
If
EntityInView(cube,camera)=True
; Используйте команды ProjectedX() и
ProjectedY(), чтобы получить 2D-координаты после использования CameraProject.
; Используйте эти координаты для печати текста в 2D, поверх 3D-сцены.
Text ProjectedX#(),ProjectedY#(),"Cube"
EndIf
Text 0,0,"Use
cursor keys to move about"
Text 0,20,"ProjectedX: "+ProjectedX#()
Text
0,40,"ProjectedY: "+ProjectedY#()
Text 0,60,"ProjectedZ: "+ProjectedZ#()
Text 0,80,"EntityInView: "+EntityInView(cube,camera)
Flip
Wend
End |