|
x#, y#, z# - world-space centre of the box width# - full size along X; must be positive height# - full size along Y; must be positive depth# - full size along Z; must be positive red (optional) - red part of the colour, 0-255; 255 (default) green (optional) - green part of the colour, 0-255; 255 (default) blue (optional) - blue part of the colour, 0-255; 255 (default) depth_test (optional) - True hides the box behind closer geometry, False draws it through everything; True (default) |
|
Queues a wireframe axis-aligned box for the next RenderWorld. DebugBox draws the twelve edges of a box centred on x,y,z. It is the quickest way to visualise anything box-shaped in your game: a trigger zone, a spawn area, a room volume you are blocking out, or a bounding box you computed yourself. The box is always axis-aligned - it does not rotate. To see the bounds of an entity, oriented by that entity's own transform, use DebugEntityBounds instead; to see collision shapes set with EntityBox, use DebugEntityCollider. Like every Debug command, the box lives for exactly one RenderWorld: the queue is drawn by the next RenderWorld and then cleared, so call DebugBox every frame for as long as you want it on screen. A zero or negative dimension stops the program with a runtime error. With depth_test True (the default) nearby geometry hides the box; pass False to draw it through walls, which is usually what you want for trigger zones the player stands inside. See also: DebugSphere, DebugEntityBounds, DebugLine, ClearDebugDraw. |
; DebugBox Example
; ----------------
Graphics3D 640,480,0,2
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,2,-8
light=CreateLight()
RotateEntity light,45,45,0
; A patrolling enemy for the debug overlay to track
enemy=CreateCube()
EntityColor enemy,220,60,60
show=True
While Not KeyDown(1)
; Space toggles the debug overlay
If KeyHit(57) Then show=Not show
; The enemy patrols left and right while spinning
angle#=angle+2
PositionEntity enemy,4*Sin(angle),0,2
TurnEntity enemy,0,3,0
; DebugBox queues a wireframe box around the enemy for the next RenderWorld
If show Then DebugBox EntityX(enemy),EntityY(enemy),EntityZ(enemy),3,3,3,255,220,0
; 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 overlay Esc: exit"
If show Then Text 0,20,"DebugBox tracks the enemy every frame" Else Text 0,20,"Overlay off - press Space"
Flip
Wend
End