Code archives/Graphics/BBThugha

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

Download source code

BBThugha by johnpeat2002
Converted from JCthugha just to 'test out' BB's raw processing speed - which is about on a par with MSIE-based Java...
; Converted from JCthugha
; http://www.afn.org/~cthugha/ for much much more...
;
; Blitz Note: Disable Debug or this runs WAY too slow...

;Set screen size
Const gwidth=400,gheight=200
Graphics gwidth,gheight,16,2

Dim snd(gwidth)

Dim col(256)
Dim colmap(gwidth,gheight)

; Make a "palette"
For i = 0 To 63
	col(i)=i*4*256*256 ; Reds
	col(i+64)=i*4*256 ; Greens
	col(i+128)=i*4 ; Blues
	col(i+192)=i*4*256*256+i*4*256+i*4 ; Greys
Next


Repeat
	
	; Fake a 'sound wave'
	snd(0) = Rand(-gheight/3,gheight/3)
	For i = 1 To gwidth-1
		snd(i) = snd(i-1) + Rand(-10,10)
		If snd(i) < -gheight Then snd(i) = snd(i) = 2*gheight
		If snd(i) > gheight  Then snd(i) = snd(i) - 2*gheight
	Next

	;Draw black outline to ensure 'flameout'
	Color 0,0,0
	Line 0,0,gwidth-1,0
	Line 0,gheight-1,gwidth-1,gheight-1
	Line 0,0,0,gheight
	Line gwidth-1,0,gwidth-1,gheight-1

	LockBuffer FrontBuffer()

	; 'Flame' effect
	For x = 0 To gwidth-1
		For y = 0 To gheight-2
			p1 = colmap(x+1,y) 
			p2 = colmap(x,y+1)
	        p3 = colmap(x+1,y+1)
			p4 = colmap(x,y)
			If  p1 < 0 Then p1 = p1 + 256
			If  p2 < 0 Then	p2 = p2 + 256
			If  p3 < 0 Then p3 = p3 + 256
			If  p4 < 0 Then p4 = p4 + 256
			s = p1 + p2 + p3 + p4;
			s = s / 4;
			If s > 0 Then s = s - 1
			colmap(x,y)=s
	        WritePixelFast x,y,col(s)
		Next
		colmap(x,gheight/2+snd(x)/3)=255
		WritePixelFast x,gheight/2+snd(x)/3,$ffffff ; White
	Next

	UnlockBuffer FrontBuffer()

Until KeyHit(1)

End

Comments

None.

Code Archives Forum