diff options
Diffstat (limited to 'src/Player.hs')
-rw-r--r-- | src/Player.hs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Player.hs b/src/Player.hs index 59076dd..af7f543 100644 --- a/src/Player.hs +++ b/src/Player.hs @@ -12,7 +12,7 @@ import GLDriver (SomeEvent) class Player a where - playerUpdate :: a -> Tank -> (a, Maybe Micro, Bool, Maybe Micro, Bool) + playerUpdate :: a -> Tank -> IO (a, Maybe Micro, Bool, Maybe Micro, Bool) handleEvent :: a -> SomeEvent -> a handleEvent player _ = player @@ -21,7 +21,7 @@ class Player a where data SomePlayer = forall a. Player a => SomePlayer a instance Player SomePlayer where - playerUpdate (SomePlayer player) tank = - let (p, angle, move, aangle, shoot) = playerUpdate player tank - in (SomePlayer p, angle, move, aangle, shoot) + playerUpdate (SomePlayer player) tank = do + (p, angle, move, aangle, shoot) <- playerUpdate player tank + return (SomePlayer p, angle, move, aangle, shoot) handleEvent (SomePlayer player) event = SomePlayer $ handleEvent player event |