Code archives/Graphics/2d in 3d

This code has been declared by its author to be Public Domain code.

Download source code

2d in 3d by Warner2010
Simulate 2d with 3d. Allows Rotate/Scale/Alpha on images. Uses b3d like 'entity' system.
This engine I wrote for a project. Cleaned it up for posting it here. The example below needs to generate images onto disk before running.
It will ask permission to do so, and it will ask to delete them when the program closes down.
* If you change graphics resolution, generated images will not fit anymore. Use the download version below instead for that. *
A complete download with examples etc. can be found here: http://abcbasic.comyr.com/2Din3D.zip
;-------------------------------------------------------------------------------------------------------------------------------------
;															FILE:DEMO
;-------------------------------------------------------------------------------------------------------------------------------------

;	all include files are marked with the "FILE:" tag.
; 	since the lib can only LOAD images, images are generated on the fly using "SaveImage"
;   in the function CreateImages()
;
;	First part is demo
;	For manual, see end of file

;-------------------------------------------------------------------------------------------------------------------------------------
;															Setup Graphics
;-------------------------------------------------------------------------------------------------------------------------------------

	Graphics3D 800,600, 0, 2
	SetBuffer BackBuffer()
	;init engine			
	SetupGraphics()	
	
	CreateImages()
	
	cursor = LoadImage("cursor.bmp")
	MidHandle cursor

;-------------------------------------------------------------------------------------------------------------------------------------
;															Globals
;-------------------------------------------------------------------------------------------------------------------------------------

	Global background.TObject
	Global alien.TObject
	Global turret.TObject
	Global projectile.TObject

;-------------------------------------------------------------------------------------------------------------------------------------
;															Setup scene
;-------------------------------------------------------------------------------------------------------------------------------------
		
	;load background
	background.TObject = LoadObject("background.bmp")
	Position background, 400, 300

	;create lists	
	Global AlienList.TList = CreateList()
	Global TurretList.TList = CreateList()
	Global ProjectileList.TList = CreateList()

;-------------------------------------------------------------------------------------------------------------------------------------
;															Main Loop
;-------------------------------------------------------------------------------------------------------------------------------------
	
	Repeat

		;RMB = create new alien	
		If MouseHit(2) Then
		
			;create and add to list
			alien = LoadObject("alien.bmp", 3, 64, 64)		
			AddToList(AlienList, alien)

			;place at mouse			
			msX = MouseX() * 800 / GraphicsWidth()
			msY = MouseY() * 600 / GraphicsHeight()
			Position alien, msX, msY
			
		End If			

		;LMB = create new turret		
		If MouseHit(1) Then
		
			;create and add to list
			turret = LoadObject("turret.bmp", 4, 64, 64)
			AddToList(TurretList, turret)
			
			;place at mouse
			msX = MouseX() * 800 / GraphicsWidth()
			msY = MouseY() * 600 / GraphicsHeight()
			Position turret, msX, msy
			
		End If

;------------------------------------------------------------------------------------------------------------------------------------
;																Turrets
;------------------------------------------------------------------------------------------------------------------------------------
				
		;aim all Turrets to closest alien
		For i = 0 To ListCount(TurretList) - 1
			turret = GetListObject(TurretList, i)
						
			;find closest and aim
			max# = 10000.0
			For j = 0 To ListCount(AlienList) - 1
				alien = GetListObject(AlienList, j)			
				dist# = Distance(alien, turret)
				If dist < max Then 
					PointAt turret, alien
					max = dist
				End If
			Next

			;shooting control
			turret\intVar[1] = turret\intVar[1] + 1
			If turret\intVar[1] > 250 Then turret\intVar[1] = 0
			If turret\intVar[1] = 0 Then
			;when the time is there, start shooting
			
				;create new projectile
				projectile = LoadObject("projectile.bmp")
			
				;store direction (based on turret rotation)	
				projectile\floatVar[0] = Cos(-turret\rotation) * 5
				projectile\floatVar[1] = Sin(-turret\rotation) * 5
				
				;position projectile at torret
				Position projectile, turret\x, turret\y
				
				;add to list
				AddToList(ProjectileList, projectile)				
			End If
			
		Next

;------------------------------------------------------------------------------------------------------------------------------------
;																Projectiles
;------------------------------------------------------------------------------------------------------------------------------------
		
		;move all projectiles
		For i = 0 To ListCount(ProjectileList) - 1
		
			;move projectile in direction it was fired
			projectile = GetListObject(ProjectileList, i)
			Move projectile, projectile\floatVar[0], projectile\floatVar[1]

			;reset remove flag			
			remove = 0
			
			;check if any of the aliens was hit
			For j = 0 To ListCount(AlienList) - 1
				alien = GetListObject(AlienList, j)
				;measure distance to determine impact
				If Distance(alien, projectile) < (alien\radius + projectile\radius)/2 Then
					;remove alien
					RemoveFromList(AlienList, alien)
					Free alien
					;set remove flag
					remove = 1
					;exit loop
					Exit
				End If
			Next

			;when projectile gets out of screen, set remove flag
			If projectile\x < 0 Then remove = 1
			If projectile\y < 0 Then remove = 1
			If projectile\x > 800 Then remove = 1
			If projectile\y > 600 Then remove = 1

			;remove projectile if flag was set			
			If remove Then
				RemoveFromList(ProjectileList, projectile)
				Free projectile
			End If
		Next

;------------------------------------------------------------------------------------------------------------------------------------
;																Aliens
;------------------------------------------------------------------------------------------------------------------------------------

		;alien eating animation control
		
		time = time + 1

		;move all aliens		
		For i = 0 To ListCount(AlienList) - 1

			alien = GetListObject(AlienList, i)

			;find closest turret		
			max# = 10000
			turret = Null
			
			For j = 0 To ListCount(TurretList) - 1
				turr.TObject = GetListObject(TurretList, j)
				
				dist# = distance(turr, alien)
				If dist < max Then
					max = dist
					turret = turr
				End If
			Next
				
			;if a turret was found
			If turret <> Null
												
				;point alien at turret
				PointAt alien, turret
				
				;get distance		
				dist# = Distance( turret, alien )
				
				;if too far away, move closer
				If dist > 50 Then 
					Move alien, 1, 0
				End If

				;if close enough, start eating animation
				If dist < 50 Then
					If time > 19 Then time = 0
					Frame alien, time / 10 + 1
					
					;each object has 255 intVars you can use
					turret\intVar[0] = turret\intVar[0] + 1
				Else
					Frame alien, 0
				End If
				
				;move turret animation while it is eaten
				Frame turret, turret\intVar[0] / 40
				;if eaten completely, remove object from list and destroy it
				If turret\intVar[0] >= 160 Then RemoveFromList(TurretList, turret): Free turret
				
			;if no turret was found
			Else
			
				;turn alien back into position and move along
				Frame alien, 0
				Turn alien, Sgn(270 - alien\rotation)
				Move alien, 1, 0
				
			End If
			
			If alien\x > 800 Then
				RemoveFromList AlienList, alien
				Free alien
			End If
			
		Next			

;------------------------------------------------------------------------------------------------------------------------------------
;																Rendering
;------------------------------------------------------------------------------------------------------------------------------------

		;render all TObjects
		Render()			
		
		Text 0,  0, "You have " + ListCount(TurretList) + " turrets"
		Text 0, 20, "There are " + ListCount(AlienList) + " aliens"
		
		Text 0, 40, "Use LMB to place turrets, use RMB to place aliens"
		Text 0, 60, "ESC=END"
		
		DrawImage cursor, MouseX(), MouseY()
		
		Flip
				
	Until KeyHit(1)
	
	DestroyImages()
	
	End
	
	
	
;------------------------------------------------------------------------------------------------------------------------------------
;																FILE:2DENGINE
;------------------------------------------------------------------------------------------------------------------------------------

Type TTexture
	Field name$
	Field tex
	Field ww#
	Field hh#
End Type

Global orgQuad

;-------------------------------------------------------------------------------------------------------------------------------------
;															SetupGraphics()
;-------------------------------------------------------------------------------------------------------------------------------------
Function SetupGraphics()

	;maak orthographic camera
	cam = CreateCamera() ;create camera
	CameraProjMode cam, 2 ;no perspective rendering
	PositionEntity cam, 0, 0, -512 ;camera to back
	CameraZoom cam, 0.313 ;800x600
	AmbientLight 255, 255, 255 ;fullbright

End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															GetSprite()
;-------------------------------------------------------------------------------------------------------------------------------------
Global returnTexture%
Global returnRadius#
Global returnWidth#
Global returnHeight#
Function GetSprite(name$, numframes=1, framewidth=0, frameheight=0)

	name$ = Lower$(Trim$(name$))

	tex = 0
	For tx.TTexture = Each TTexture
		If tx\name$ = name$ Then 
			ww = tx\ww
			hh = tx\hh
			tex = tx\tex
			Exit
		End If
	Next

	If tex = 0 Then
		;get image properties
		im = LoadImage(name$)
		
		;if not defined, autodetect width/height
		If framewidth = 0  Then ww = ImageWidth(im)  Else ww = framewidth
		If frameheight = 0 Then hh = ImageHeight(im) Else hh = frameheight
			
		FreeImage im
	
		;load image as texture - flag 4=transparent	
		If numframes > 1 Then
			tex = LoadAnimTexture(name$, 4, ww, hh, 0, numframes)
		Else
			tex = LoadTexture(name$, 4)
		End If
		
		If tex = 0 Then RuntimeError "Could not load texture: " + tex
		
		tx.TTexture = New TTexture
		tx\name$ = name$
		tx\tex = tex
		tx\ww = ww
		tx\hh = hh
	End If
		
	;create quad with image size
	If orgQuad = 0 Then orgQuad = CreateQuad(1, 1): HideEntity orgQuad
	quad = CopyEntity(orgQuad)
	ScaleEntity quad, ww, hh, 1
	EntityTexture quad, tex ;apply texture

	;return biggest radius	
	returnRadius# = Max(ww, hh)
	;return width&height	
	returnWidth = ww
	returnHeight = hh
		
	;return newly created quad and texture
	returnTexture = tex
	Return quad
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															CreateQuad()
;-------------------------------------------------------------------------------------------------------------------------------------
Function CreateQuad(ww#, hh#)
	
	ww# = ww# / 250.0
	hh# = hh# / 250.0

	mesh = CreateMesh()
	surf = CreateSurface(mesh)
	
	AddVertex surf, -ww,  hh, 0, 0.0, 0.0
	AddVertex surf,  ww,  hh, 0, 1.0, 0.0
	AddVertex surf,  ww, -hh, 0, 1.0, 1.0
	AddVertex surf, -ww, -hh, 0, 0.0, 1.0
	
	AddTriangle surf, 0, 1, 2
	AddTriangle surf, 0, 2, 3
	
	Return mesh
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Max()
;-------------------------------------------------------------------------------------------------------------------------------------
Function Max#(a#, b#)
	If a > b Then Return a Else Return b
End Function


;-------------------------------------------------------------------------------------------------------------------------------------
;															FILE:ENTITYENGINE
;-------------------------------------------------------------------------------------------------------------------------------------

;object definition
Type TObject
	Field x#
	Field y#
	Field rotation
	Field alpha#	
	Field show%
	
	Field width#
	Field height#
	
	Field scaleX#
	Field scaleY#
	
	Field entity
	Field texture
	Field framecount%	
	Field radius#
	
	Field intVar%[255]
	Field floatVar#[255]
	
	Field parent.TList
End Type

;-------------------------------------------------------------------------------------------------------------------------------------
;															LoadObject()
;-------------------------------------------------------------------------------------------------------------------------------------
;load object from image
Function LoadObject.TObject(file$, numframes=1, framewidth=0, frameheight=0)

	If FileType(file$) <> 1 Then RuntimeError "could not find file: " + file$
	
	obj.TObject = New TObject
	obj\x = 0
	obj\y = 0
	obj\alpha = 1.0
	obj\show = True
	
	obj\entity = GetSprite(file$, numframes, framewidth, frameheight)
	obj\texture = returnTexture
	obj\radius = returnRadius
	
	obj\width = returnWidth
	obj\height = returnHeight
	obj\scaleX = 1
	obj\scaleY = 1
	
	obj\framecount = numframes
	
	If obj\entity = 0 Then RuntimeError "could not load sprite: " + file$
	
	Return obj
	
End Function


;-------------------------------------------------------------------------------------------------------------------------------------
;															PointAt()
;-------------------------------------------------------------------------------------------------------------------------------------
;point one object towards the other
Function PointAt(obj.TObject, obj2.TObject)

	obj\rotation = 270 - ATan2(obj2\y - obj\y, obj2\x - obj\x)

End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Distance()
;-------------------------------------------------------------------------------------------------------------------------------------
;return distance between two objects
Function Distance#(obj.TObject, obj2.TObject)

	x# = (obj\x - obj2\x)
	y# = (obj\y - obj2\y)
	
	Return Sqr(x*x+y*y)
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															PointDistance()
;-------------------------------------------------------------------------------------------------------------------------------------
;return distance between objects and point
Function PointDistance#(obj.TObject, x#, y#)

	x# = (obj\x - x)
	y# = (obj\y - y)
	
	Return Sqr(x*x+y*y)
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Move()
;-------------------------------------------------------------------------------------------------------------------------------------
;move object
Function Move(obj.TObject, x#, y#)

	obj\x = obj\x - Sin(obj\rotation) * x + Sin(obj\rotation + 90) * y
	obj\y = obj\y - Cos(obj\rotation) * x + Cos(obj\rotation + 90) * y

End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Frame()
;-------------------------------------------------------------------------------------------------------------------------------------
;select animation frame
Function Frame(obj.TObject, frame#)

	frame = Floor(frame)

	While frame < 0
		frame = frame + obj\framecount
	Wend
	frame = frame Mod obj\framecount
	
	EntityTexture obj\entity, obj\texture, frame

End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Position()
;-------------------------------------------------------------------------------------------------------------------------------------
;set position
Function Position(obj.TObject, x#, y#)

	obj\x = x
	obj\y = y
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Rotate()
;-------------------------------------------------------------------------------------------------------------------------------------
;set rotation
Function Rotate(obj.TObject, angle#)

	obj\rotation = angle
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Turn()
;-------------------------------------------------------------------------------------------------------------------------------------
;turn object
Function Turn(obj.TObject, angle#)

	obj\rotation = obj\rotation + angle
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Scale()
;-------------------------------------------------------------------------------------------------------------------------------------
;scale object
Function Scale(obj.TObject, scaleX#, scaleY#)

	ScaleEntity obj\entity, obj\width * scaleX, obj\height * scaleY, 1
	obj\scaleX = scaleX
	obj\scaleY = scaleY

End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															SetOrder()
;-------------------------------------------------------------------------------------------------------------------------------------
;set z-order
Function SetOrder(obj.TObject, order#)
	PositionEntity obj\entity, EntityX(obj\entity), EntityY(obj\entity), -order
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Hide()
;-------------------------------------------------------------------------------------------------------------------------------------
;hide object
Function Hide(obj.TObject)
	obj\show = False
	HideEntity obj\entity
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Show()
;-------------------------------------------------------------------------------------------------------------------------------------
;show object
Function Show(obj.TObject)
	obj\show = True
	ShowEntity obj\entity
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Alpha()
;-------------------------------------------------------------------------------------------------------------------------------------
Function Alpha(obj.TObject, a#)
	obj\alpha = a
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															Free()
;-------------------------------------------------------------------------------------------------------------------------------------
;remove entity
Function Free(obj.TObject)
	FreeEntity obj\entity
	Delete obj
End Function


;-------------------------------------------------------------------------------------------------------------------------------------
;															Render()
;-------------------------------------------------------------------------------------------------------------------------------------
;render all
Function Render()

	UpdateObjects()		
	RenderWorld

End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															UpdateObjects()
;-------------------------------------------------------------------------------------------------------------------------------------
Function UpdateObjects()

	For obj.TObject = Each TObject
		RotateEntity obj\entity, 0, 0, obj\rotation
		PositionEntity obj\entity, (obj\x - 400) * 3.2 / 400, -(obj\y - 300) * 2.4 / 300, EntityZ(obj\entity)
		EntityAlpha obj\entity, obj\alpha
	Next
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															FILE:TLISTS
;-------------------------------------------------------------------------------------------------------------------------------------

;list type definition
Type TList
	Field index
	Field size
	Field bank
End Type

;-------------------------------------------------------------------------------------------------------------------------------------
;															CreateList()
;-------------------------------------------------------------------------------------------------------------------------------------
Function CreateList.TList()
	l.TList = New TList
	l\size = 1
	l\bank = CreateBank(4)
	l\index = 0
	Return l
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															AddToList()
;-------------------------------------------------------------------------------------------------------------------------------------
Function AddToList(l.TList, obj.TObject)

	If l = Null Then RuntimeError "Invalid list"
	If obj = Null Then RuntimeError "Invalid/Null object"

	index = l\index	
	size = l\size
	bank = l\bank
	
	If index >= size Then
		newbank = CreateBank(size*4 * 2)
		CopyBank bank, 0, newbank, 0, size*4
		FreeBank bank
		bank = newbank
		size = size * 2
	End If
	
	PokeInt bank, index * 4, Handle(obj)
	index = index + 1
	
	l\index = index
	l\size = size
	l\bank = bank
	
	obj\parent = l
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															RemoveFromList()
;-------------------------------------------------------------------------------------------------------------------------------------
Function RemoveFromList(l.TList, obj.TObject)

	If l = Null Then RuntimeError "Invalid list"
	If obj = Null Then Return

	index = l\index	
	size = l\size
	bank = l\bank

	found = -1	
	For i = 0 To index
		getObject.TObject = Object.TObject(PeekInt(bank, i * 4))
		If getObject = obj Then
			found = i
			Exit
		End If
	Next
	
	If found > -1 Then
		If found < index Then CopyBank bank, (found + 1) * 4, bank, found * 4, (index-found-1) * 4
		index = index - 1
	End If
	
	l\index = index
	l\size = size
	l\bank = bank	
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															ListCount()
;-------------------------------------------------------------------------------------------------------------------------------------
Function ListCount(l.TList)

	Return l\index
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															GetListObject()
;-------------------------------------------------------------------------------------------------------------------------------------
Function GetListObject.TObject(l.TList, i)

	If l = Null Then RuntimeError "Invalid list"
	If l\index = 0 Then Return Null
	Return Object.TObject(PeekInt(l\bank, i*4))
	
End Function

;-------------------------------------------------------------------------------------------------------------------------------------
;															FILE:IMAGES
;-------------------------------------------------------------------------------------------------------------------------------------

;-------------------------------------------------------------------------------------------------------------------------------------
;															CreateImages()
;-------------------------------------------------------------------------------------------------------------------------------------
Function CreateImages()

	Locate 0, 0
	Cls
	Print "cursor.bmp"
	Print "alien.bmp"
	Print "background.bmp"
	Print "projectile.bmp"
	Print "turret.bmp"
	Print
	a$ = Input("you want to create all these image files (y/n) ?")
	a$ = Lower$(Trim$(a$))
	If a$ <> "y" Then RuntimeError "cannot proceed.." :End

	CreateCursorImage()
	CreateAlienImage()
	CreateBackgroundImage()
	CreateProjectileImage()
	CreateTurretImage()
	
End Function

Function DestroyImages()

	Locate 0, 0
	Cls
	Print "cursor.bmp"
	Print "alien.bmp"
	Print "background.bmp"
	Print "projectile.bmp"
	Print "turret.bmp"
	Print
	a$ = Input("you want to delete all these image files (y/n) ?")
	a$ = Lower$(Trim$(a$))
	If a$ <> "y" Then Return
	If FileType("cursor.bmp") = 1 Then DeleteFile "cursor.bmp"
	If FileType("alien.bmp") = 1 Then DeleteFile "alien.bmp"
	If FileType("background.bmp") = 1 Then DeleteFile "background.bmp"
	If FileType("projectile.bmp") = 1 Then DeleteFile "projectile.bmp"
	If FileType("turret.bmp") = 1 Then DeleteFile "turret.bmp"
End Function

Function CreateCursorImage()
	im = CreateImage(32, 32)
	Cls
	Rect 15, 0, 3, 32
	Rect 0, 15, 32, 3
	GrabImage im, 0, 0
	SaveImage im, "cursor.bmp"
	FreeImage im
End Function

Function CreateAlienImage()
	im = CreateImage(128, 128)
	Cls
	sc = 5
	For i = 0 To 1
	For j = 0 To 1
		Color 64, 128, 255
		Oval i*64,j*64,64,64, 1
		mx = i *64+32
		my = j*64+32
		Color 8, 12, 64
		Oval mx-sc, my-sc+8, sc*2,sc*2, 1
		
		Oval mx-16, my - 14, 4, 4
		Oval mx+12, my - 14, 4, 4
		sc = sc + 2
	Next
	Next
	GrabImage im, 0, 0
	SaveImage im, "alien.bmp"
	FreeImage im
End Function

Function CreateBackgroundImage()
	im = CreateImage(800, 600)
	Cls
	Color 0, 0, 255
	Rect 0, 0, 800, 300
	Color 0, 255, 0
	Rect 0, 300, 800, 300
	GrabImage im,0,0
	SaveImage im, "background.bmp"
	FreeImage im
	Color 255,255,255
End Function

Function CreateProjectileImage()
	Cls
	For i = 16 To 0 Step -1
		c = i * 16
		Color c, c, c
		Oval 16-i,16-i,i*2,i*2
	Next
	im = CreateImage(32,32)
	GrabImage im, 0, 0
	SaveImage im, "projectile.bmp"
	FreeImage im
End Function

Function CreateTurretImage()
	im = CreateImage(128, 128)
	Cls
	sc = 0
	For j = 0 To 1
	For i = 0 To 1
		Color 255, 0, 0
		Oval i*64,j*64,64,64
		For ic = 1 To sc
			x = Rand(54) + i * 64
			y = Rand(54) + j * 64
			Color 0, 0, 0
			Oval x, y, 10, 10
		Next
		sc = sc + 35
		Color 255,255,255
		Rect i * 64 + 30, j * 64, 4, 32
	Next
	Next
	GrabImage im,0,0
	SaveImage im, "turret.bmp"
	FreeImage im
	Color 255,255,255
End Function



;-------------------------------------------------------------------------------------------------------------------------------------
;																Manual
;-------------------------------------------------------------------------------------------------------------------------------------
;
;NB: where "object" is "TObject instance"
;
;LoadObject( file$ )
;	Loads and returns an object from an image file
;
;LoadObject( file$, numFrames%, frameWidth%, frameHeight% )
;	Loads and returns an object from an image that contains animation
;	
;PointAt( object1, object2 )
;	Points an object towards another object
;
;Distance( object1, object2 )
;	Returns the distance between two objects
;
;PointDistance( object1, x#, y# )
;	Returns the distance between a point and an object
;
;Move( object, x#, y# )
;	Moves the object in the direction it is aimed (x=forward)
;
;Frame( object, frame% )
;	Selects the animation frame on the object
;
;Position( object, x#, y# )
;	Places the object on a specific x,y location (screen=allways 800x600)
;
;Rotate( object, angle# )
;	Rotates an object to a specific angle
;
;Scale( object, scaleX#, scaleY#)
;	Scales an object
;
;Turn( object, angle# )
;	Turns an object with a relative angle
;
;SetOrder( object, order )
;	Sets the Z-order for the object
;
;Alpha( object, alpha# )
;	Sets the transparency of an object
;
;Hide( object )
;	Hides the object
;
;Show( object )
;	Shows an (previously hidden) object
;
;Free( object )
;	Removes an object
;
;Render
;	Renders all objects
;
;CreateList()
;	Create (and returns) a new TList
;
;AddToList( list, object )
;	Add object to TList
;
;RemoveFromList( list, object)
;	Remove object from TList
;

Comments

None.

Code Archives Forum