; This is the Original Source for many of my Plasma-FX.
; Original QB-Plasma, ported to BB . By CSP 2001.
; Note: Turn Off the Debugger, or it will be way too slow
Graphics 1024,768,16,2
SetBuffer BackBuffer()
plasma=CreateImage(1024,768)
Dim cosinus(2560)
position = 0
For c = 0 To 2560
cosinus(c) = Cos((115*3.14159265358 * c) / 640) * 32 + 32
Next
;Create some Color Arrays
Dim r(255) : Dim g(255) : Dim b(255) : Dim mrgb(255)
For i=0 To 63 : r(i)=i*4 : g(i)=0 : b(i)=255-(i*4) : Next
For i=0 To 63 : r(i+64)=255-(i*4) : g(i+64)=i*2 : b(i+64)=0 : Next
For i=0 To 63 : r(i+128)=i*2 : g(i+128)=128-(i*2) : b(i+128)=i*4 : Next
For i=0 To 63 : r(i+192)=128+(i*2) : g(i+192)=i : b(i+192)=255-(i*4) : Next
For i=0 To 255 : mrgb(i)=((r(i)*$10000)+(g(i)*$100)+b(i))And $FFFFFF : Next
; mainloop
While a<>27
a=GetKey()
Gosub qbplasma
Flip
Wend
End
.qbplasma
wave1 = wave1 + 2
If wave1 >= 1024 Then wave1 = 0
wave2 = wave2 + 2
If wave2 >= 1024 Then wave2 = 0
wave3 = wave3 + 3
If wave3 >= 1024 Then wave3 = 0
SetBuffer ImageBuffer(plasma)
LockBuffer
For y = 0 To 1023
d = cosinus(y + wave2) + cosinus(y + wave3)
For x = 0 To 1023
f = (cosinus(x + wave1) + cosinus(x + y) + d) And $FF
WritePixelFast x,y,mrgb(f)
Next
Next
UnlockBuffer
SetBuffer BackBuffer()
DrawImage plasma,0,0
Return
; This is the Original Source for many of my Plasma-FX.
; Original QB-Plasma, ported to BB . By CSP 2001.
; Note: Turn Off the Debugger, or it will be way too slow
width=1024
height=768
w2=width/2
Graphics width,height,16,2
SetBuffer BackBuffer()
plasma=CreateImage(width/2,w2)
Dim cosinus(width)
position = 0
For c = 0 To width
cosinus(c) = Cos((115*3.14159265358 * c) / w2) * 32 + 32
Next
;Create some Color Arrays
Dim r(255) : Dim g(255) : Dim b(255) : Dim mrgb(255)
For i=0 To 63 : r(i)=i*4 : g(i)=0 : b(i)=255-(i*4) : Next
For i=0 To 63 : r(i+64)=255-(i*4) : g(i+64)=i*2 : b(i+64)=0 : Next
For i=0 To 63 : r(i+128)=i*2 : g(i+128)=128-(i*2) : b(i+128)=i*4 : Next
For i=0 To 63 : r(i+192)=128+(i*2) : g(i+192)=i : b(i+192)=255-(i*4) : Next
For i=0 To 255 : mrgb(i)=((r(i)*$10000)+(g(i)*$100)+b(i))And $FFFFFF : Next
; mainloop
While a<>27
a=GetKey()
Gosub qbplasma
Flip
Wend
End
.qbplasma
wave1 = wave1 + 2
If wave1 >= w2 Then wave1 = 0
wave2 = wave2 + 2
If wave2 >= w2 Then wave2 = 0
wave3 = wave3 + 3
If wave3 >= w2 Then wave3 = 0
SetBuffer ImageBuffer(plasma)
LockBuffer
For y = 0 To w2-1
d = cosinus(y + wave2) + cosinus(y + wave3)
For x = 0 To w2-1
f = (cosinus(x + wave1) + cosinus(x + y) + d) And $FF
WritePixelFast x,y,mrgb(f)
Next
Next
UnlockBuffer
SetBuffer BackBuffer()
DrawImage plasma,0,0
Return
; This is the Original Source for many of my Plasma-FX.
; Original QB-Plasma, ported to BB . By CSP 2001.
; Note: Turn Off the Debugger, or it will be way too slow
width=640
height=480
w2=width/2
Graphics width,height,16,1
SetBuffer BackBuffer()
plasma=CreateImage(width,height)
Dim cosinus(2560)
position = 0
For c = 0 To 2560
cosinus(c) = Cos((115*3.14159265358 * c) / w2) * 32 + 32
Next
;Create some Color Arrays
Dim r(255) : Dim g(255) : Dim b(255) : Dim mrgb(255)
For i=0 To 63 : r(i)=i*4 : g(i)=0 : b(i)=255-(i*4) : Next
For i=0 To 63 : r(i+64)=255-(i*4) : g(i+64)=i*2 : b(i+64)=0 : Next
For i=0 To 63 : r(i+128)=i*2 : g(i+128)=128-(i*2) : b(i+128)=i*4 : Next
For i=0 To 63 : r(i+192)=128+(i*2) : g(i+192)=i : b(i+192)=255-(i*4) : Next
For i=0 To 255 : mrgb(i)=((r(i)*$10000)+(g(i)*$100)+b(i))And $FFFFFF : Next
; mainloop
While a<>27
a=GetKey()
Gosub qbplasma
Flip
Wend
End
.qbplasma
wave1 = wave1 + 2
If wave1 >= width Then wave1 = 0
wave2 = wave2 + 2
If wave2 >= width Then wave2 = 0
wave3 = wave3 + 3
If wave3 >= width Then wave3 = 0
SetBuffer ImageBuffer(plasma)
LockBuffer
For y = 0 To height-1
d = cosinus(y + wave2) + cosinus(y + wave3)
For x = 0 To width-1
f = (cosinus(x + wave1) + cosinus(x + y) + d) And $FF
WritePixelFast x,y,mrgb(f)
Next
Next
UnlockBuffer
SetBuffer BackBuffer()
DrawImage plasma,0,0
Return