В виде "сверху" все просто: если тайл размером 32х32 то я делаю так:
- Код: Выделить всё
tileX = INT ( X / 32 ) ; tileY = INT (Y/32)
А как это сделать в изометрии???
Модератор: Mikle
tileX = INT ( X / 32 ) ; tileY = INT (Y/32)
Option Explicit
'Экранный размер тайла
Const SizeX = 100
Const SizeY = 50
Private Sub Form_Load()
Dim dx As Integer, dy As Integer
Me.ScaleMode = vbTwips
dx = Me.Width - Me.ScaleWidth
dy = Me.Height - Me.ScaleHeight
Me.ScaleMode = vbPixels
Me.AutoRedraw = True
Me.Width = 400 * Screen.TwipsPerPixelX + dx
Me.Height = 300 * Screen.TwipsPerPixelY + dy
Me.Show
For dy = -300 To 300 Step 50
Line (0, dy + 200)-(400, dy), &HFF0000
Line (0, dy)-(400, dy + 200), &HFF0000
Next dy
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim LandX As Integer, LandY As Integer
LandX = Int(X / SizeX + Y / SizeY)
LandY = Int(X / SizeX - Y / SizeY)
Me.Caption = "LandY=" & LandY & ", LandX=" & LandX
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46