diff options
-rw-r--r-- | GLX.hs | 5 | ||||
-rw-r--r-- | HTanks.hs | 7 | ||||
-rw-r--r-- | tex/Tank.png | bin | 1076 -> 284 bytes |
3 files changed, 8 insertions, 4 deletions
@@ -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) @@ -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 Binary files differindex c87098d..b6dd9a3 100644 --- a/tex/Tank.png +++ b/tex/Tank.png |