Below the code creates an image of 16*16 and sets the handle to the centre. Then the code
draws the image to the screen with a different scale and with a rotation.
Code Below:
Import mojo Global im1data:Int[][] = [ [0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0], [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0], [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0], [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0], [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0], [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0], [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0], [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0], [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0], [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0], [0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0] ] Global rotation:Int = 0 Class MyGame Extends App Field image:Image Method OnCreate() SetUpdateRate(60) image = CreateImage(16, 16,1,image.MidHandle) Local pixels:Int[16 * 16] For Local i:Int = 0 Until 16 * 16 Local x:Int = i Mod 16 Local y:Int = i / 16 If im1data[y][x] = 0 pixels[i] = argb(0,0,0,0) Elseif im1data[y][x] = 1 pixels[i] = argb(10,200,25) Elseif im1data[y][x] = 2 pixels[i] = argb(210,200,25) End If Next image.WritePixels(pixels, 0, 0, 16, 16, 0) End Method Method OnUpdate() rotation+=1 If rotation>360 Then rotation = 0 End Method Method OnRender() Cls(0,0,0) SetColor(255,255,255) For Local i = 0 To 10 DrawImage image,100+Rnd(32)-16,100+Rnd(32)-16,0,3,3 Next DrawImage image,100,200,rotation,2,2 End End Function Main() New MyGame() End Function argb:Int(r:Int, g:Int, b:Int ,alpha:Int=255) Return (alpha Shl 24) | (r Shl 16) | (g Shl 8) | b End Function
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.