summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--GLX.hs5
-rw-r--r--HTanks.hs7
-rw-r--r--tex/Tank.pngbin1076 -> 284 bytes
3 files changed, 8 insertions, 4 deletions
diff --git a/GLX.hs b/GLX.hs
index ba2bfeb..f98d367 100644
--- a/GLX.hs
+++ b/GLX.hs
@@ -157,9 +157,12 @@ handleEvent glx xevent = do
wa <- getWindowAttributes (glxDisplay glx) (glxWindow glx)
let x = fromIntegral . ev_x $ event
y = fromIntegral . ev_y $ event
+ w = fromIntegral . wa_width $ wa
h = fromIntegral . wa_height $ wa
s = fromRational . glxScale $ glx
- return (glx, Just $ SomeEvent $ MouseMotionEvent (x/s) ((h-y)/s))
+ lw = fromIntegral . glxLevelWidth $ glx
+ lh = fromIntegral . glxLevelHeight $ glx
+ return (glx, Just $ SomeEvent $ MouseMotionEvent ((w/2+x)/s - lw/2) ((h/2-y)/s + lh/2))
| otherwise -> return (glx, Nothing)
diff --git a/HTanks.hs b/HTanks.hs
index 9ff45fe..c75aba2 100644
--- a/HTanks.hs
+++ b/HTanks.hs
@@ -39,7 +39,8 @@ runMain st (MainT a) = runStateT a st
main :: IO ()
main = do
- gl <- initGL $ glxDriver 10 10
+ let theLevel = testLevel
+ gl <- initGL $ glxDriver (levelWidth theLevel) (levelHeight theLevel)
when (initialized gl) $ do
currentTime <- getCurrentTime
@@ -47,8 +48,8 @@ main = do
[ SomePlayer $ DefaultPlayer S.empty 0 0
, SomePlayer $ CPUPlayer 0
]}
- gameState = GameState {level = testLevel, tanks = [ Tank 5.0 5.0 0 0 2 360 False
- , Tank 5.0 3.5 0 0 2 360 False
+ gameState = GameState {level = theLevel, tanks = [ Tank 5.0 5.0 0 0 2 270 False
+ , Tank 5.0 3.5 0 0 2 270 False
], textures = M.empty}
runGame gameState $ do
diff --git a/tex/Tank.png b/tex/Tank.png
index c87098d..b6dd9a3 100644
--- a/tex/Tank.png
+++ b/tex/Tank.png
Binary files differ