summaryrefslogtreecommitdiffstats
path: root/src/CPUPlayer.hs
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-06-24 21:50:32 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-06-24 21:50:32 +0200
commit83f0606ea9dfd6b493097dc97330055dff4a2867 (patch)
tree464d7f3ed2c02f48b6463d1528e3e0b5f50e79c6 /src/CPUPlayer.hs
parentd7971385e844e24d9d851d3d142895b5cb89c91b (diff)
downloadhtanks-83f0606ea9dfd6b493097dc97330055dff4a2867.tar
htanks-83f0606ea9dfd6b493097dc97330055dff4a2867.zip
Added Transformable class to simplify collision calculation
Diffstat (limited to 'src/CPUPlayer.hs')
-rw-r--r--src/CPUPlayer.hs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/CPUPlayer.hs b/src/CPUPlayer.hs
index a9eb6d8..55722bf 100644
--- a/src/CPUPlayer.hs
+++ b/src/CPUPlayer.hs
@@ -4,17 +4,20 @@ module CPUPlayer ( CPUPlayer(..)
) where
-import Data.Fixed
-import Data.Ratio ((%))
import Data.Typeable
+import Transformable
+import Vector
import GLDriver
import Player
-data CPUPlayer = CPUPlayer Micro
+data CPUPlayer = CPUPlayer Vector
deriving (Typeable, Show)
instance Player CPUPlayer where
-- playerUpdate (CPUPlayer angle) _ = return (CPUPlayer (if (angle+0.2) > 180 then angle-359.8 else angle+0.2), Just angle, True, Just (-angle), ((fromIntegral . round $ angle) == angle) && ((round $ angle) `mod` 2 == 0))
- playerUpdate (CPUPlayer angle) _ = return (CPUPlayer (if (angle+0.2) > 180 then angle-359.8 else angle+0.2), Just angle, True, Just (-angle), False)
+ playerUpdate (CPUPlayer dir) _ = return (CPUPlayer dir', Just dir', True, Just mirrordir, False)
+ where
+ dir' = (rotate (0.2*pi/180)) >< dir
+ mirrordir = Vector (vectorX dir') (-(vectorY dir'))