diff options
Diffstat (limited to 'DefaultPlayer.hs')
-rw-r--r-- | DefaultPlayer.hs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/DefaultPlayer.hs b/DefaultPlayer.hs index 351928f..d1c1e24 100644 --- a/DefaultPlayer.hs +++ b/DefaultPlayer.hs @@ -14,20 +14,20 @@ import Player import Tank -data DefaultPlayer = DefaultPlayer (S.Set Key) +data DefaultPlayer = DefaultPlayer (S.Set Key) Micro Micro deriving (Typeable, Show) instance Player DefaultPlayer where - playerMovement (DefaultPlayer keys) _ = playerMovement' keys + playerUpdate (DefaultPlayer keys aimx aimy) tank = playerUpdate' keys aimx aimy tank - handleEvent (DefaultPlayer keys) ev - | Just (KeyPressEvent key) <- fromEvent ev = DefaultPlayer $ S.insert key keys - | Just (KeyReleaseEvent key) <- fromEvent ev = DefaultPlayer $ S.delete key keys - | otherwise = DefaultPlayer keys + handleEvent (DefaultPlayer keys aimx aimy) ev + | Just (KeyPressEvent key) <- fromEvent ev = DefaultPlayer (S.insert key keys) aimx aimy + | Just (KeyReleaseEvent key) <- fromEvent ev = DefaultPlayer (S.delete key keys) aimx aimy + | otherwise = DefaultPlayer keys aimx aimy -playerMovement' :: S.Set Key -> (DefaultPlayer, Maybe Micro, Bool) -playerMovement' keys = (DefaultPlayer keys, angle, move) +playerUpdate' :: S.Set Key -> Micro -> Micro -> Tank -> (DefaultPlayer, Maybe Micro, Bool, Maybe Micro) +playerUpdate' keys aimx aimy tank = (DefaultPlayer keys aimx aimy, angle, move, Nothing) where x = (if (S.member KeyLeft keys) then (-1) else 0) + (if (S.member KeyRight keys) then 1 else 0) y = (if (S.member KeyDown keys) then (-1) else 0) + (if (S.member KeyUp keys) then 1 else 0) |