Here some code that shows how to create images/sprites using arrays and also draw them on the screen.
Code below :
Import mojo
Class MyGame Extends App
Field image:Image
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] ]
Method OnCreate:Int()
SetUpdateRate(60)
image = CreateImage(16, 16)
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 OnRender:Int()
Cls()
For Local x = 0 Until DeviceWidth Step 16
For Local y = 0 Until DeviceHeight Step 16
DrawImage(image, x,y)
Next
Next
End
End
Function Main:Int()
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.