В общем, что-то наподобие чанков:
Function CreateWorld()
loading_time=MilliSecs()
For i=-5 To 5
For i1=-5 To 5
fl=WriteFile("map\"+i+","+i1+".txt")
For i2=0 To 15
For i3=0 To 15
a=Rnd(20)
If a=1
WriteInt(fl,a)
Else
WriteInt(fl,0)
EndIf
Text R1/2-100,R2/2,"Loading: "+(i+5)*(i1+5)*i2*i3+" tiles generated"
Flip(False)
Cls
Next
Next
CloseFile(fl)
Next
Next
Text R1/2-100,R2/2,"Loading time: "+(MilliSecs()-loading_time)+" millisecs"
Flip
Delay 2000
End Function
Function Update_World()
chunk_x=Int((camera_x+R1/2)/512)
chunk_y=Int((camera_y+R2/2)/512)
For i=chunk_x-1 To chunk_x+1
For i1=chunk_y-1 To chunk_y+1
fl=OpenFile("map\"+i+","+i1+".txt")
For i2=0 To 15
For i3=0 To 15
DrawImage tile(ReadInt(fl)),512*i-camera_x+i2*32,512*i1-camera_y+i3*32
Next
Next
CloseFile(fl)
Next
Next
Посоветуйте что и как можно улучшить. Пока проблема в том, что показывается только нынешний чанк, и то расширенный.
P.S. R1 и R2 - ширина и высота экрана.