Global mz#,grx ,gry
Graphics 800,600 ,32,2
SetBuffer BackBuffer()
grx = GraphicsWidth()/2 : gry = GraphicsHeight()/2
tile_sizeX = 50
tile_sizeY = 20
a = 5
b = a+a+1
ClsColor 34 ,139 ,34
While Not KeyHit(1)
Cls
mx# = MouseX() : my# = MouseY() : mz# = MouseZ()*0.1+1
For y = 1 To b
For x = -a To a
px# = x*tile_sizeX +(y*mz)*x
py# = y*tile_sizeY
Color 3 ,35, 3
If x<a Line grx + px,py +gry , grx + ( (x+1)*tile_sizeX )+((y*mz)*(x+1)),py+gry
If y<b Line grx + px,py+gry , grx + ( x*tile_sizeX )+((y+1)*mz*x) ,(y+1)*tile_sizeY+gry
If y<b And x<a Text grx +px+20 ,py+2+gry , (x+a+1)+" : "+y
Next
Next
; номера тайла по Х и Y координатам мыши
ym# = Floor#((my-gry) / tile_sizeY )
xx# = Floor#( (( mx-grx ) / (((my-gry) / tile_sizeY )*mz+tile_sizeX) ) )
Text mx,my-10,Int(xx+a+1) +" : "+Int(ym)
Text 20,20,"MouseX : "+Int(mx)+" MouseY : "+Int(my)+" MouseZ : "+mz
Text 20,40,"X : "+Int(xx+a+1)
Text 20,60,"Y : "+Int(ym)
DrawSelectTile(xx,ym,tile_sizeX,tile_sizeY)
Flip
Wend
End
Function DrawSelectTile#(ntx,nty,tileSizeX,tileSizeY )
Color 255,255,255
tx# = ntx*tileSizeX +(nty*mz)*ntx : ty# = nty*tileSizeY : ty2# = (nty+1)*tileSizeY
tx2# = ((ntx+1)*tileSizeX +((nty+1)*mz)*(ntx+1) )
px# = (tx+tx2)/2
py# = (ty+ty2)/2
Oval grx +px -4,gry + py -4,8,8
;Line grx +tx ,gry + ty ,grx +tx2 ,gry + ty2
End Function