From 996313bd8994d4536492ec8000f7a92fb015433e Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 8 Mar 2010 20:16:51 +0100 Subject: Re-corrected coordinates... and new tank texture --- GLX.hs | 5 ++++- HTanks.hs | 7 ++++--- tex/Tank.png | Bin 1076 -> 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 Binary files a/tex/Tank.png and b/tex/Tank.png differ -- cgit v1.2.3