Показать сообщение отдельно
Старый 28.03.2013, 00:32   #3
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Фокус на объекте

Graphics 800,600
Global img1 = LoadImage("isoTiles/testGreen.png")
Global img2 = LoadImage("isoTiles/testBlue.png")
SetBlend ALPHABLEND
Global sx=300,sy=100 'стартовые координаты(откуда начинаю отрисовывать
Global stepx=sx, stepy =sy ' Шаг по Х и У , в начале == координатам 300 Х 100
Global cameraX,cameraY
While Not KeyDown(27) ' Главный цикл
Cls
drawingMap()

If KeyDown(KEY_RIGHT) Then  stepx :+10 ; stepy :+5 ;
If KeyDown(KEY_LEFT) Then stepx :-10 ; stepy :-5
If KeyDown(KEY_UP) Then stepx :+10 ; stepy :-5
If KeyDown(KEY_DOWN) Then stepx :-10 ; stepy :+5
If KeyDown(KEY_H) Then ShowTestData()

Flip(1) 
Wend 

Function IsoX(x,y)
rez = Int(((2*(y+cameraY)-(x+cameraX))/162))
Return rez
End Function

Function IsoY(x,y)
rez = Int((((x+cameraX)+2*(y+cameraY))/162))
Return rez
End Function


Function drawingMap()
cameraX=stepx-400
cameraY=stepy-300
For i=IsoX(800,0)-2 To IsoX(0,600)+1
 	For j=IsoY(0,0)-2 To IsoY(800,600)+1
			x=(j-i)*81-cameraX                                    
			y=(i+j)*40-cameraY
            DrawImage img2 ,x,y
        Next
Next
DrawImage img1 ,stepx-41-cameraX,stepy-20-cameraY 'выводим "персонажа"
End Function




Function ShowTestData()
 mX =MouseX()
 my% =MouseY()
DrawText "position X = "+stepx, 1,1
DrawText "position Y = "+stepy, 1,20
DrawText "mouse X = "+mX , 1,40
DrawText "mouse Y = "+my , 1,60

EndFunction
Если делать передвижение игрока по тайлам, эффекта не будет, ведь все тайлы одинаковые.
Размеры тайлов я бы советовал вам изменить. Уж больно они кривые.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Rashgild (28.03.2013)