From 83f0606ea9dfd6b493097dc97330055dff4a2867 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 24 Jun 2011 21:50:32 +0200 Subject: Added Transformable class to simplify collision calculation --- src/CPUPlayer.hs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/CPUPlayer.hs') 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')) -- cgit v1.2.3