summaryrefslogtreecommitdiffstats
path: root/DefaultPlayer.hs
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2010-03-05 03:32:02 +0100
committerMatthias Schiffer <matthias@gamezock.de>2010-03-05 03:32:02 +0100
commit1020310190063279b7951e44d8ae21fe3a623aa3 (patch)
treef28f74ee4f9c37b6ec5dcac8e3dfb45c12b1e377 /DefaultPlayer.hs
parent88fd16d93080801014336ba8946a37919125b90c (diff)
downloadhtanks-1020310190063279b7951e44d8ae21fe3a623aa3.tar
htanks-1020310190063279b7951e44d8ae21fe3a623aa3.zip
Render cannon direction; handle resize in GLX driver
Diffstat (limited to 'DefaultPlayer.hs')
-rw-r--r--DefaultPlayer.hs16
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)