Github page
Import mojo
Class colorspread16
Field r:Float[16]
Field g:Float[16]
Field b:Float[16]
Method New( r1:Int,g1:Int,b1:Int,
r2:Int,g2:Int,b2:Int)
Local sr:Float
Local sg:Float
Local sb:Float
If r1>r2
sr = (r1-r2)/16
For Local i:Float=0 Until 16 Step 1
r[i] = r1-(i*sr)
Next
Else
sr = (r2-r1)/16
For Local i:Float=0 Until 16 Step 1
r[i] = r1+i*sr
Next
End If
If g1>g2
sg = (g1-g2)/16
For Local i:Float=0 Until 16 Step 1
g[i] = g1-(i*sg)
Next
Else
sg = (g2-g1)/16
For Local i:Float=0 Until 16 Step 1
g[i] = g1+i*sg
Next
End If
If b1>b2
sb = (b1-b2)/16
For Local i:Float=0 Until 16 Step 1
b[i] = b1-(i*sb)
Next
Else
sb = (b2-b1)/16
For Local i:Float=0 Until 16 Step 1
b[i] = b1+i*sb
Next
End If
End Method
End Class
Global spread:colorspread16
Class MyGame Extends App
Field cnt:Int
Field r:Int[2]
Field g:Int[2]
Field b:Int[2]
Method OnCreate()
SetUpdateRate(60)
Seed = GetDate[5]
For Local i=0 To 1
r[i] = Rnd(0,255)
g[i] = Rnd(0,255)
b[i] = Rnd(0,255)
Next
spread = New colorspread16( r[0],g[0],b[0],
r[1],g[1],b[1])
End Method
Method OnUpdate()
cnt+=1
If cnt>200
cnt=0
For Local i=0 To 1
r[i] = Rnd(0,255)
g[i] = Rnd(0,255)
b[i] = Rnd(0,255)
Next
spread = New colorspread16( r[0],g[0],b[0],
r[1],g[1],b[1])
End If
End Method
Method OnRender()
Cls 0,0,0
SetColor 255,255,255
' Draw the background
For Local i=0 Until 16
SetColor spread.r[i],
spread.g[i],
spread.b[i]
DrawRect i*(DeviceWidth/16),0,
(DeviceWidth/16),DeviceHeight
Next
' Draw the gui part
Local c:Int=0
For Local y=0 Until 8
For Local x=0 To 1
SetColor 0,0,0
DrawRect x*34+100,
y*34+100,
34,34
SetColor spread.r[c],
spread.g[c],
spread.b[c]
DrawRect x*34+101,
y*34+101,
32,32
c+=1
Next
Next
' Draw the text
SetColor 255,255,255
DrawText "Monkey-X - Spreading 2 colors "+
"out into 16 colors - Example",0,0
DrawText "R1:"+r[0]+
" G1:"+g[0]+
" B1:"+b[0],100,50
DrawText "R2:"+r[1]+
" G2:"+g[1]+
" B2:"+b[1],100,70
End Method
End Class
Function Main()
New MyGame()
End Function
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.