Оператор ЭВМ
Регистрация: 16.09.2008
Сообщений: 25
Написано одно полезное сообщение (для 3 участников)
|
Pure&Blitz3DSDK
Вот портированный и немного измененный сэмпл.
Подскажите, как заставить trail ложиться на поверхность не
вертикально, а горизонтально?
;blitz3dsdk V1.02
;pb 4.0
;Camera zoom A-Z
;Move up,left,right
IncludeFile "blitz3dsdk.pbi"
bbBeginBlitz3D ()
;bbSetBlitz3DTitle ("PB Cube - use cursors to move")
bbGraphics3D (1440, 900, 32, 2)
bbSetBuffer( bbBackBuffer())
smooth=1
Global info1$="Tron demo"
Global info2$="Features dynamic mesh creation"
Global info3$="Use arrow keys to steer, A/Z to zoom"
grid_tex=bbCreateTexture( 16,16,8 )
bbScaleTexture (grid_tex,10,10)
bbSetBuffer (bbTextureBuffer( grid_tex ))
bbColor (0,0,64):bbRect (0,0,32,32)
bbColor (0,0,255):bbRect (0,0,32,32,False)
bbSetBuffer (bbBackBuffer())
grid_plane=bbCreatePlane()
bbEntityTexture (grid_plane,grid_tex)
bbEntityBlend (grid_plane,1)
bbEntityAlpha (grid_plane,0.6)
bbEntityFX (grid_plane,1)
mirror=bbCreateMirror()
pivot=bbCreatePivot()
trail_mesh=bbCreateMesh()
trail_brush=bbCreateBrush()
bbBrushColor (trail_brush,255,0,0)
bbBrushBlend (trail_brush,3)
bbBrushFX (trail_brush,1)
trail_surf=bbCreateSurface( trail_mesh,trail_brush )
bbAddVertex (trail_surf,0,2,0,0,0)
bbAddVertex (trail_surf,0,0,0,0,1)
bbAddVertex (trail_surf,0,2,0,0,0)
bbAddVertex (trail_surf,0,0,0,0,1)
bbAddTriangle (trail_surf,0,2,3)
bbAddTriangle (trail_surf,0,3,1)
bbAddTriangle (trail_surf,0,3,2)
bbAddTriangle (trail_surf,0,1,3)
trail_vert=2
bike=bbCreateSphere()
bbScaleMesh (bike,0.70,1,2)
bbPositionEntity (bike,0,1,0)
bbEntityShininess (bike,1)
bbEntityColor (bike,192,0,255)
camera=bbCreateCamera()
bbTurnEntity (camera,45,0,0)
cam_d=60;
light=bbCreateLight()
bbTurnEntity (light,45,45,0)
add_flag=False
While Not bbKeyHit(1)
If bbKeyDown(#Key_A)
cam_d=cam_d-1
EndIf
If bbKeyDown(#Key_Z)
cam_d=cam_d+1
EndIf
turn=0
If smooth=1
If bbKeyDown(#Key_Left) :turn=5: EndIf
If bbKeyDown(#Key_Right) :turn=-5: EndIf
If turn
add_cnt=add_cnt+1
If add_cnt=3
add_cnt=0
add_flag=1
Else
add_flag=0
EndIf
ElseIf add_cnt
add_cnt=0
add_flag=1
Else
add_flag=0
EndIf
Else
If bbKeyHit(#Key_Left) :turn=90: EndIf
If bbKeyHit(#Key_Right) :turn=-90: EndIf
If turn: add_flag=1
Else
add_flag=0
EndIf
EndIf
If turn
bbTurnEntity (bike,0,turn,0)
EndIf
If bbKeyDown(#Key_Up) :bbMoveEntity (bike,0,0,1): EndIf
If add_flag=1
bbAddVertex (trail_surf,bbEntityX(bike),2,bbEntityZ(bike),0,0)
bbAddVertex (trail_surf,bbEntityX(bike),0,bbEntityZ(bike),0,1)
bbAddTriangle (trail_surf,trail_vert,trail_vert+2,trail_vert+3)
bbAddTriangle (trail_surf,trail_vert,trail_vert+3,trail_vert+1)
bbAddTriangle (trail_surf,trail_vert,trail_vert+3,trail_vert+2)
bbAddTriangle (trail_surf,trail_vert,trail_vert+1,trail_vert+3)
trail_vert=trail_vert+2
Else
bbVertexCoords (trail_surf,trail_vert,bbEntityX(bike),2,bbEntityZ (bike))
bbVertexCoords (trail_surf,trail_vert+1,bbEntityX(bike),0,bbEntit yZ(bike))
EndIf
bbUpdateWorld()
bbPositionEntity (camera,bbEntityX(bike)-5,0,bbEntityZ(bike))
bbMoveEntity (camera,0,0,-cam_d)
bbRenderWorld()
bbFlip()
Wend
bbEndBlitz3D ()
End
|