They are in the BlitzMax->blitz3d.mod->blitz3dsdk.mod->doc->samples->mak directory.
(At least those ported so far)
In this directory you need to place the 'blitz3dsdk.pbi' file as well as a new file named "start.pb" containing the following code:
Code: Select all
IncludeFile "../blitz3dsdk.pbi"
Declare SetGfx()
SetGfx()
Procedure SetGfx()
; Initialise Blitz3D engine...
bbBeginBlitz3D ()
; Set debug mode (it's on by default -- just added this so you can turn it off)...
bbSetBlitz3DDebugMode(0) ; 1 = DEBUG ON, 0 = DEBUG OFF
If info1$<>""
bbSetBlitz3DTitle( info1$, "Exit "+info1$+"?")
EndIf
bbFlushKeys()
mode_cnt=bbCountGfxModes3D()
If Not mode_cnt
bbRuntimeError("Can't find any 3D graphics modes")
EndIf
mode=0
If Not bbWindowed3D()
mode=1
EndIf
bbGraphics(640,480,16,2)
bbSetBuffer(bbBackBuffer())
image=bbLoadImage( "b3dlogo.jpg" )
If Not image
image=bbLoadImage( "../b3dlogo.jpg" )
EndIf
bbMidHandle(image)
font=bbLoadFont( "verdana",16,0,0,0 )
bbSetFont(font)
tx=640+160
nx=-160
ty=280
url$="www.blitzbasic.com"
url_x=640-bbStringWidth( url$ )
url_y=480-bbFontHeight()
Repeat
bbCls()
bbDrawBlock(image,320,144,0)
bbColor(0,255,0)
bbText(tx,ty+bbFontHeight()*0,info1$,#True)
If (info2$ <> "")
bbText(nx,ty+bbFontHeight()*1,info2$,#True)
EndIf
If (info3$ <> "")
bbText(tx,ty+bbFontHeight()*2,info3$,#True)
EndIf
If (info4$ <> "")
bbText(nx,ty+bbFontHeight()*3,info4$,#True)
EndIf
bbColor(255,255,255)
If mode=0
bbText(tx,ty+bbFontHeight()*5,"Windowed",#True)
Else
bbText(tx,ty+bbFontHeight()*5,Str(bbGfxModeWidth( mode ))+","+Str(bbGfxModeHeight( mode ))+","+Str(bbGfxModeDepth( mode )),#True)
EndIf
bbColor(255,0,0)
bbText(nx,ty+bbFontHeight()*7,"[Return] to begin",#True)
bbText(tx,ty+bbFontHeight()*8,"[Arrows] change mode",#True)
bbText(nx,ty+bbFontHeight()*9,"[Escape] to exit",#True)
bbColor(0,0,255)
bbText(url_x,url_y,url$)
If bbKeyHit( 1 )
End
EndIf
If bbKeyHit( 28 )
bbCls():bbFlip()
bbCls():bbFlip()
bbFreeFont(font)
bbFreeImage(image)
bbEndGraphics()
If mode
bbGraphics3D(bbGfxModeWidth(mode),bbGfxModeHeight(mode),bbGfxModeDepth(mode),1)
Else
bbGraphics3D(640,480,0,2)
EndIf
bbSetBuffer(bbBackBuffer())
ProcedureReturn
EndIf
If bbKeyHit( 203 )
mode=mode-1
If mode<0 Or (mode=0 And (Not bbWindowed3D()))
mode=mode_cnt
EndIf
ElseIf bbKeyHit( 205 )
mode=mode+1
If mode>mode_cnt
mode=0
If Not bbWindowed3D()
mode=1
EndIf
EndIf
EndIf
If tx>320
tx=tx-8
EndIf
If nx<320
nx=nx+8
EndIf
bbFlip()
ForEver
EndProcedure

Dragon example
Code: Select all
;0,40 : idle
;40,46 : run
;46,54 : attack
;54,58 : paina
;58,62 : painb
;62,66 : painc
;66,72 : jump
;72,84 : flip
Global info1$="Dragon Demo"
Global info2$="Use arrows keys to pan, A/Z to zoom"
Global info3$="MD2 Dragon model courtesy of Polycount"
; Run start code
IncludeFile "../start.pb"
;environment cube
cube=bbCreateCube()
bbFitMesh(cube,-250,0,-250,500,500,500)
bbFlipMesh(cube)
tex=bbLoadTexture( "chorme-2.bmp" )
bbScaleTexture(tex,1.0/3,1.0/3)
bbEntityTexture(cube,tex)
bbEntityAlpha(cube,0.4)
bbEntityFX(cube,1)
;floor mirror
m=bbCreateMirror()
;simple light
light=bbCreateLight()
bbTurnEntity(light,45,45,0)
;camera
camera=bbCreateCamera()
cam_xr.f=30:cam_yr.f=0:cam_zr.f=0:cam_z.f=-100
;cool dragon model!
tex=bbLoadTexture( "model\dragon.bmp" )
dragon=bbLoadMD2( "model\dragon.md2" )
bbEntityTexture(dragon,tex)
bbPositionEntity(dragon,0,25,0)
bbTurnEntity(dragon,0,150,0)
bbAnimateMD2(dragon,1,0.05,0,40)
While Not bbKeyHit(1)
If bbKeyDown(203)
cam_yr=cam_yr-2
ElseIf bbKeyDown(205)
cam_yr=cam_yr+2
EndIf
If bbKeyDown(200)
cam_xr=cam_xr+2
If cam_xr>90
cam_xr=90
EndIf
ElseIf bbKeyDown(208)
cam_xr=cam_xr-2
If cam_xr<5
cam_xr=5
EndIf
EndIf
If bbKeyDown(26)
cam_zr=cam_zr+2
ElseIf bbKeyDown(27)
cam_zr=cam_zr-2
EndIf
If bbKeyDown(30)
cam_z=cam_z+1:If cam_z>-10
cam_z=-10
EndIf
ElseIf bbKeyDown(44)
cam_z=cam_z-1:If cam_z<-180
cam_z=-180
EndIf
EndIf
bbPositionEntity(camera,0,0,0)
bbRotateEntity(camera,cam_xr,cam_yr,cam_zr)
bbMoveEntity(camera,0,0,cam_z)
bbUpdateWorld()
bbRenderWorld()
bbFlip()
Wend
; Close down Blitz3D engine...
bbEndBlitz3D ()
End
Code: Select all
; Just dummies here
Global info1$ = "Multicam"
Global info2$ = "Demonstrates the use of multiple cameras"
Global info3$ = "Use arrows keys to pan, A/Z to zoom"
; Run start code
IncludeFile "../start.pb"
tex=bbCreateTexture( 64,64 )
bbSetBuffer(bbTextureBuffer( tex ))
bbColor(255,0,0):bbRect(0,0,32,32):bbRect(32,32,32,32)
bbColor(255,128,0):bbRect(32,0,32,32):bbRect(0,32,32,32)
bbSetBuffer(bbBackBuffer())
bbColor(255,255,255)
cone=bbCreateCone(20)
bbEntityTexture(cone,tex)
sphere=bbCreateSphere(10)
bbPositionEntity(sphere,2,0,0)
bbEntityTexture(sphere,tex)
cylinder=bbCreateCylinder(20)
bbPositionEntity(cylinder,-2,0,0)
bbEntityTexture(cylinder,tex)
light=bbCreateLight()
bbTurnEntity(light,45,45,0)
pivot=bbCreatePivot()
z_cam=bbCreateCamera( pivot )
bbCameraViewport(z_cam,0,0,320,240)
bbPositionEntity(z_cam,0,0,-5)
y_cam=bbCreateCamera( pivot )
bbCameraViewport(y_cam,320,0,320,240)
bbPositionEntity(y_cam,0,5,0)
bbTurnEntity(y_cam,90,0,0)
x_cam=bbCreateCamera( pivot )
bbCameraViewport(x_cam,0,240,320,240)
bbTurnEntity(x_cam,0,-90,0)
bbPositionEntity(x_cam,-5,0,0)
While Not bbKeyHit(1)
If bbKeyDown(203)
bbMoveEntity(pivot,-0.1,0,0)
EndIf
If bbKeyDown(205)
bbMoveEntity(pivot,0.1,0,0)
EndIf
If bbKeyDown(200)
bbMoveEntity(pivot,0,0.1,0)
EndIf
If bbKeyDown(208)
bbMoveEntity(pivot,0,-0.1,0)
EndIf
If bbKeyDown(30)
bbMoveEntity(pivot,0,0,0.1)
EndIf
If bbKeyDown(44)
bbMoveEntity(pivot,0,0,-0.1)
EndIf
bbUpdateWorld()
bbRenderWorld()
bbText(0,0,"Front")
bbText(320,0,"Top")
bbText(0,240,"Left")
bbFlip()
Wend
End
Code: Select all
Global info1$="Teapot demo"
Global info2$="Features Cubic/spheriocal reflection mapping"
Global info3$="Arrows keys to pan camera"
IncludeFile "../start.pb"
cube_ref=#False
If bbGfxDriverCaps3D()>=110
Global out$ = PeekS(bbInput("")); First call fails? Is this a bug?
bbLocate(0,0) ; Oh well, place it on top of failed one :)
If Left(LCase(PeekS(bbInput("Select (c)ubic or (s)pherical mapping :"))),1)="c"
cube_ref=#True
EndIf
EndIf
teapot=bbLoadMesh( "teapot.x" )
If cube_ref
tex=bbLoadTexture( "castle_env.bmp",128+8 )
Else
tex=bbLoadTexture( "spheremap.bmp",64+1 )
EndIf
bbEntityTexture(teapot,tex,0,0)
bbEntityFX(teapot,1)
cam_pivot=bbCreatePivot(); teapot )
camera=bbCreateCamera( cam_pivot )
bbPositionEntity(camera,0,0,-3)
While Not bbKeyHit(1)
If bbKeyDown(200)
bbTurnEntity(cam_pivot,3,0,0)
EndIf
If bbKeyDown(208)
bbTurnEntity(cam_pivot,-3,0,0)
EndIf
If bbKeyDown(203)
bbTurnEntity(cam_pivot,0,3,0)
EndIf
If bbKeyDown(205)
bbTurnEntity(cam_pivot,0,-3,0)
EndIf
bbTurnEntity(teapot,0.1,0.3,0)
bbUpdateWorld()
bbRenderWorld()
bbFlip()
Wend
End
Code: Select all
Global info1$="Texture render demo"
Global info2$="Renders a 3D scene onto a texture"
Global info3$="Use Arrow keys to Pan, A/Z to zoom"
; Run start code
IncludeFile "../start.pb"
grid_tex=bbCreateTexture( 16,16,8,1 )
bbScaleTexture(grid_tex,10,10)
bbSetBuffer(bbTextureBuffer( grid_tex ))
bbClsColor(255,255,255):bbCls():bbClsColor(0,0,0)
bbColor(192,192,192):bbRect(0,0,8,8):bbRect(8,8,8,8)
bbSetBuffer(bbBackBuffer())
plane=bbCreatePlane()
bbEntityTexture(plane,grid_tex)
pivot=bbCreatePivot()
bbPositionEntity(pivot,0,2,0)
t_sphere=bbCreateSphere( 8 )
bbEntityShininess(t_sphere,0.2)
For t=0 To 359 Step 36
sphere=bbCopyEntity( t_sphere,pivot )
bbEntityColor(sphere,Random(256),Random(256),Random(256))
bbTurnEntity(sphere,0,t,0)
bbMoveEntity(sphere,0,0,10)
Next
bbFreeEntity(t_sphere)
texture=bbCreateTexture( 128,128,256 )
cube=bbCreateCube()
bbEntityTexture(cube,texture)
bbPositionEntity(cube,0,7,0)
bbScaleEntity(cube,3,3,3)
light=bbCreateLight()
bbTurnEntity(light,45,45,0)
camera=bbCreateCamera()
plan_cam=bbCreateCamera()
bbTurnEntity(plan_cam,90,0,0)
bbPositionEntity(plan_cam,0,20,0)
bbCameraViewport(plan_cam,0,0,128,128)
bbCameraClsColor(plan_cam,0,128,0)
d.f=-20
While Not bbKeyHit(1)
If bbKeyDown(30)
d=d+1
EndIf
If bbKeyDown(44)
d=d-1
EndIf
If bbKeyDown(203)
bbTurnEntity(camera,0,-3,0)
EndIf
If bbKeyDown(205)
bbTurnEntity(camera,0,3,0)
EndIf
bbPositionEntity(camera,0,7,0)
bbMoveEntity(camera,0,0,d)
bbTurnEntity(cube,0.1,0.2,0.3)
bbTurnEntity(pivot,0,1,0)
bbUpdateWorld()
bbHideEntity(camera)
bbShowEntity(plan_cam)
bbRenderWorld()
bbCopyRect(0,0,128,128,0,0,0,bbTextureBuffer( texture ))
bbShowEntity(camera)
bbHideEntity(plan_cam)
bbRenderWorld()
bbFlip()
Wend
Code: Select all
smooth=#True
Global info1$="Tron demo"
Global info2$="Features dynamic mesh creation"
Global info3$="Use arrow keys to steer, A/Z to zoom"
IncludeFile "../start.pb"
grid_tex=bbCreateTexture( 32,32,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()
p=bbCreatePivot( p )
cube=bbCreateCube( p )
bbScaleEntity(cube,1,1,5)
bbSetAnimKey(cube,0)
bbRotateEntity(cube,0,120,0)
bbSetAnimKey(cube,60)
bbRotateEntity(cube,0,240,0)
bbSetAnimKey(cube,120)
bbRotateEntity(cube,0,0,0)
bbSetAnimKey(cube,180)
bbAddAnimSeq(p,180)
For x=-100 To 100 Step 25
For z=-100 To 100 Step 25
e=bbCopyEntity( p,pivot )
bbPositionEntity(e,x,5,z)
bbAnimate(e)
Next
Next
bbFreeEntity(cube)
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.75,1,2)
bbPositionEntity(bike,0,1,0)
bbEntityShininess(bike,1)
bbEntityColor(bike,192,0,255)
camera=bbCreateCamera()
bbTurnEntity(camera,45,0,0)
cam_d.f=30
light=bbCreateLight()
bbTurnEntity(light,45,45,0)
add_flag=#False
While Not bbKeyHit(1)
If bbKeyHit(17)
wire=~wire
bbWireFrame(wire)
EndIf
If bbKeyDown(30)
cam_d=cam_d-1
EndIf
If bbKeyDown(44)
cam_d=cam_d+1
EndIf
turn=0
If smooth
If bbKeyDown(203)
turn=5
EndIf
If bbKeyDown(205)
turn=-5
EndIf
If turn
add_cnt=add_cnt+1
If add_cnt=3
add_cnt=0
add_flag=#True
Else
add_flag=#False
EndIf
ElseIf add_cnt
add_cnt=0
add_flag=#True
Else
add_flag=#False
EndIf
Else
If bbKeyHit(203)
turn=90
EndIf
If bbKeyHit(205)
turn=-90
EndIf
If turn
add_flag=#True
Else
add_flag=#False
EndIf
EndIf
If turn
bbTurnEntity(bike,0,turn,0)
EndIf
bbMoveEntity(bike,0,0,1)
If add_flag
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,bbEntityZ(bike))
EndIf
bbUpdateWorld()
bbPositionEntity(camera,bbEntityX(bike)-5,0,bbEntityZ(bike))
bbMoveEntity(camera,0,0,-cam_d)
; PositionEntity camera,0,20,0
; PointEntity camera,bike
bbRenderWorld()
bbFlip()
Wend
End