diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2010-02-25 02:15:26 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2010-02-25 02:15:26 +0100 |
commit | b4c3367c63459607f0919e77998d5405634e2003 (patch) | |
tree | bbd9a47429a642bc72456946ea8c5e7a646ee815 /HTanks.hs | |
parent | 7f12f41e5fce40042f97d167da9a0fb58e5a1651 (diff) | |
download | htanks-b4c3367c63459607f0919e77998d5405634e2003.tar htanks-b4c3367c63459607f0919e77998d5405634e2003.zip |
Added texture loading
Diffstat (limited to 'HTanks.hs')
-rw-r--r-- | HTanks.hs | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -39,10 +39,11 @@ main = do when (initialized gl) $ do currentTime <- getCurrentTime let mainState = MainState {run = True, driver = SomeDriver gl, time = currentTime, keyset = S.empty} - gameState = GameState {level = testLevel, tanks = [Tank 0.0 0.0 0 0]} + gameState = GameState {level = testLevel, tanks = [Tank 0.0 0.0 0 0 2]} - setup 800 600 - runGame gameState $ runMain mainState $ mainLoop + runGame gameState $ do + setup 800 600 + runMain mainState mainLoop deinitGL gl @@ -90,10 +91,11 @@ simulationStep = do when (lengthsq /= 0) $ do let length = sqrt lengthsq - let dx = fromRational (round (x*1000/length)%1000000) - dy = fromRational (round (y*1000/length)%1000000) - oldtank <- lift $ gets (head . tanks) + + let dx = (speed oldtank) * fromRational (round (x*1000/length)%1000000) + dy = (speed oldtank) * fromRational (round (y*1000/length)%1000000) + let tank = oldtank {posx = dx + posx oldtank, posy = dy + posy oldtank} lift $ modify $ \state -> state {tanks = tank:(tail . tanks $ state)} @@ -107,7 +109,7 @@ handleEvents = do handleEvent :: SomeEvent -> Main () handleEvent ev - | Just (ResizeEvent w h) <- fromEvent ev = liftIO $ resize w h + | Just (ResizeEvent w h) <- fromEvent ev = lift $ resize w h | Just (KeyPressEvent key) <- fromEvent ev = modify $ \state -> state {keyset = S.insert key (keyset state)} | Just (KeyReleaseEvent key) <- fromEvent ev = modify $ \state -> state {keyset = S.delete key (keyset state)} | Just QuitEvent <- fromEvent ev = modify $ \state -> state {run = False} |