Refactor event/input
This commit is contained in:
+6
-6
@@ -312,7 +312,7 @@ zoneOfScreen :: World -> [(Int,Int)]
|
||||
zoneOfScreen w = [(a,b) | a <- [x - n .. x + n]
|
||||
, b <- [y - n .. y + n]
|
||||
]
|
||||
where (x,y) = zoneOfPoint $ _cameraPos w
|
||||
where (x,y) = zoneOfPoint $ _cameraCenter w
|
||||
n = ceiling $ wh / (_cameraZoom w * zoneSize)
|
||||
wh = max (_windowX w) (_windowY w)
|
||||
|
||||
@@ -320,7 +320,7 @@ zoneOfDoubleScreen :: World -> [(Int,Int)]
|
||||
zoneOfDoubleScreen w = [(a,b) | a <- [x - n .. x + n]
|
||||
, b <- [y - n .. y + n]
|
||||
]
|
||||
where (x,y) = zoneOfPoint $ _cameraPos w
|
||||
where (x,y) = zoneOfPoint $ _cameraCenter w
|
||||
n = (ceiling $ wh / (_cameraZoom w * zoneSize)) * 2
|
||||
wh = max (_windowX w) (_windowY w)
|
||||
|
||||
@@ -334,7 +334,7 @@ screenPolygon :: World -> [Point2]
|
||||
screenPolygon w = [tr,tl,bl,br]
|
||||
where scRot = rotateV (_cameraRot w)
|
||||
scZoom p | _cameraZoom w /= 0 = (1/_cameraZoom w) *.* p
|
||||
scTran p = p +.+ _cameraPos w
|
||||
scTran p = p +.+ _cameraCenter w
|
||||
tr = scTran $ scRot $ scZoom ( halfWidth w, halfHeight w)
|
||||
tl = scTran $ scRot $ scZoom (-halfWidth w, halfHeight w)
|
||||
br = scTran $ scRot $ scZoom ( halfWidth w,-halfHeight w)
|
||||
@@ -731,7 +731,7 @@ levLayer MenuLayer = 90
|
||||
worldPosToScreen :: World -> Point2 -> Point2
|
||||
worldPosToScreen w = doWindowScale . doRotate . doZoom . doTranslate
|
||||
where
|
||||
doTranslate p = p -.- _cameraPos w
|
||||
doTranslate p = p -.- _cameraCenter w
|
||||
doZoom p = _cameraZoom w *.* p
|
||||
doRotate p = rotateV (0 - _cameraRot w) p
|
||||
doWindowScale (x,y) = ( x * 2 / _windowX w
|
||||
@@ -743,13 +743,13 @@ cartePosToScreen w = doWindowScale . doRotate . doZoom . doTranslate
|
||||
where
|
||||
doTranslate p = p -.- _carteCenter w
|
||||
doZoom p = _carteZoom w *.* p
|
||||
doRotate p = rotateV (0 - _cameraRot w) p
|
||||
doRotate p = rotateV (0 - _carteRot w) p
|
||||
doWindowScale (x,y) = ( x * 2 / _windowX w
|
||||
, y * 2 / _windowY w
|
||||
)
|
||||
|
||||
mouseWorldPos :: World -> Point2
|
||||
mouseWorldPos w = _cameraPos w +.+ (1/_cameraZoom w) *.* rotateV (_cameraRot w) (_mousePos w)
|
||||
mouseWorldPos w = _cameraCenter w +.+ (1/_cameraZoom w) *.* rotateV (_cameraRot w) (_mousePos w)
|
||||
|
||||
mouseCartePos :: World -> Point2
|
||||
mouseCartePos w = _carteCenter w +.+ (1/_carteZoom w) *.* rotateV (_carteRot w) (_mousePos w)
|
||||
|
||||
Reference in New Issue
Block a user