|
size# (optional) - overall width and depth of the grid in world units; must be positive; 20 (default) step# (optional) - spacing between grid lines; must be positive; 1 (default) y# (optional) - height of the grid plane; 0 (default) red (optional) - red part of the colour, 0-255; 90 (default) green (optional) - green part of the colour, 0-255; 90 (default) blue (optional) - blue part of the colour, 0-255; 90 (default) depth_test (optional) - True hides grid lines behind closer geometry, False draws them through everything; True (default) |
|
Queues a flat XZ reference grid, centred on the world origin, for the next RenderWorld. DebugGrid gives an empty scene a floor. While you are blocking out a level or testing movement code, the grid makes position, scale and distance readable at a glance - each default cell is exactly one world unit. The grid spans size# by size# units, centred on 0,0 in X and Z, at height y#. Like every Debug command, the grid lives for exactly one RenderWorld: the queue is drawn by the next RenderWorld and then cleared, so call DebugGrid every frame for as long as you want it on screen. A zero or negative size or step stops the program with a runtime error. The default subdued grey stays readable without shouting over your scene; recolour it if it fights your background. A big grid with a tiny step eats into the shared 65,536-line debug budget quickly, so keep the step sensible. For a grid that persists every frame without re-issuing, or one you can move and rotate like an entity, build one once with CreateLineList and AddLine instead. See also: DebugLine, DebugEntityAxes, ClearDebugDraw, CreateLineList. |
; DebugGrid Example
; -----------------
Graphics3D 640,480,0,2
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,4,-10
light=CreateLight()
RotateEntity light,45,45,0
; A hovering ship to give the grid a sense of scale
ship=CreateCone()
EntityColor ship,80,200,255
show=True
spacing#=1
While Not KeyDown(1)
; Space toggles the grid, [ and ] change its step size
If KeyHit(57) Then show=Not show
If KeyHit(26) And spacing>0.5 Then spacing=spacing-0.5
If KeyHit(27) And spacing<4 Then spacing=spacing+0.5
; The ship bobs and drifts above the ground plane
angle#=angle+1.5
PositionEntity ship,3*Sin(angle),1.5+0.5*Sin(angle*3),2
; DebugGrid queues a centred XZ ground grid for the next RenderWorld
If show Then DebugGrid 20,spacing,0,90,90,90
; Arrow keys move the camera
If KeyDown(200) Then MoveEntity camera,0,0,0.1
If KeyDown(208) Then MoveEntity camera,0,0,-0.1
If KeyDown(203) Then TurnEntity camera,0,1,0
If KeyDown(205) Then TurnEntity camera,0,-1,0
RenderWorld
Text 0,0,"Arrow keys: move camera Space: toggle grid [ / ] : step Esc: exit"
If show Then Text 0,20,"DebugGrid 20,"+spacing+",0" Else Text 0,20,"Grid off - press Space"
Flip
Wend
End