Here a example of how to remake classes in the main loop. This is done with a map class. Also a example of how to set up the map array in the class and creating that with a
method.
Import mojo Class map Field mapwidth:Int,mapheight:Int ' the 2 dimensional array i set up here ' it needs no size yet. Field map:Int[][] Field tilewidth:Float,tileheight:Float Method New(mapwidth:Int,mapheight:Int) ' here we resize the map array map = makearray(mapwidth,mapheight) Self.mapwidth = mapwidth Self.mapheight = mapheight tilewidth = 640/mapwidth tileheight = 480/mapheight makemap End Method Method makemap() 'create random blocks For Local i=0 Until (mapwidth*mapheight)/10 map [Rnd(0,mapwidth)][Rnd(0,mapheight)] = 1 Next End Method Method draw() For Local y=0 Until mapheight For Local x=0 Until mapwidth If map[x][y] = 1 SetColor 150,150,150 DrawRect x*tilewidth, y*tileheight, tilewidth,tileheight End If Next Next End Method ' this function creates and returns a 2 'dimensional array Method makearray:Int[][](a:Int,b:Int) Local aa:Int[a][] For Local i=0 Until a aa[i] = New Int[b] Next Return aa End Method End Class Global mymap:map Global mytime:Int Class MyGame Extends App Method OnCreate() SetUpdateRate(60) ' here we create the first map mymap = New map(20,20) End Method Method OnUpdate() If mytime>60 mytime=0 ' here we create a new map mymap = New map( Rnd(10,51), Rnd(10,51)) Else mytime+=1 End If End Method Method OnRender() Cls(0,0,0) mymap.draw SetColor 255,255,255 DrawText "Inloop Class creation and "+ "return 2 dim array",2,2 End End Function Main() New MyGame() End
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.