finishing up: rotation
This commit is contained in:
parent
8a28d54795
commit
2761777ff9
1 changed files with 14 additions and 15 deletions
29
src/Test.hs
29
src/Test.hs
|
@ -21,7 +21,7 @@ import Data.Maybe
|
||||||
|
|
||||||
import System.Random (randomRIO)
|
import System.Random (randomRIO)
|
||||||
|
|
||||||
import Linear
|
import Linear hiding (E)
|
||||||
|
|
||||||
import Foreign.C.Types (CFloat(..))
|
import Foreign.C.Types (CFloat(..))
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ loadMap = do
|
||||||
(inter, rps) <- liftIO $ placeInteriorIO mat imgmat exits gr
|
(inter, rps) <- liftIO $ placeInteriorIO mat imgmat exits gr
|
||||||
liftIO $ logIO A.Debug ("number of reachpoints: " ++ show (length rps))
|
liftIO $ logIO A.Debug ("number of reachpoints: " ++ show (length rps))
|
||||||
let nnex = Prelude.filter (\p -> pointType p /= RoomExit) rps
|
let nnex = Prelude.filter (\p -> pointType p /= RoomExit) rps
|
||||||
liftIO $ A.logIO A.Debug $ "number of placed NPCs: " ++ show (length nnex)
|
|
||||||
npcposs <- placeNPCs inter mat rps gr 50 -- (length nnex)
|
npcposs <- placeNPCs inter mat rps gr 50 -- (length nnex)
|
||||||
|
liftIO $ A.logIO A.Debug $ "number of placed NPCs: " ++ show (length npcposs)
|
||||||
(nws, _) <- liftIO $ yieldSystemT (worldState ud) $ do
|
(nws, _) <- liftIO $ yieldSystemT (worldState ud) $ do
|
||||||
void $ createEntity $ newEntity
|
void $ createEntity $ newEntity
|
||||||
{ pos = Just (V2 20.5 20.5)
|
{ pos = Just (V2 20.5 20.5)
|
||||||
|
@ -188,21 +188,21 @@ updateMap :: Double -> Affection UserData ()
|
||||||
updateMap dt = do
|
updateMap dt = do
|
||||||
let direction :: V2 Double -> Direction -> Direction
|
let direction :: V2 Double -> Direction -> Direction
|
||||||
direction vel'@(V2 vr _) rot' = if sqrt (vel' `dot` vel') > 0
|
direction vel'@(V2 vr _) rot' = if sqrt (vel' `dot` vel') > 0
|
||||||
then toEnum (
|
then
|
||||||
let xuu =
|
let xuu =
|
||||||
(acos ((vel' `dot` V2 0 1) / sqrt (vel' `dot` vel'))) / pi * 180
|
(acos ((vel' `dot` V2 0 1) / sqrt (vel' `dot` vel'))) / pi * 180
|
||||||
xu = if vr < 0 then 360 - xuu else xuu
|
xu = if vr < 0 then 360 - xuu else xuu
|
||||||
d
|
d
|
||||||
| xu < 22.5 = 0
|
| xu < 22.5 = NE
|
||||||
| xu > 22.5 && xu < 67.5 = 1
|
| xu > 22.5 && xu < 67.5 = E
|
||||||
| xu > 67.5 && xu < 112.5 = 2
|
| xu > 67.5 && xu < 112.5 = SE
|
||||||
| xu > 112.5 && xu < 157.5 = 3
|
| xu > 112.5 && xu < 157.5 = S
|
||||||
| xu > 157.5 && xu < 202.5 = 4
|
| xu > 157.5 && xu < 202.5 = SW
|
||||||
| xu > 202.5 && xu < 247.5 = 5
|
| xu > 202.5 && xu < 247.5 = W
|
||||||
| xu > 247.5 && xu < 292.5 = 6
|
| xu > 247.5 && xu < 292.5 = NW
|
||||||
| xu > 292.5 && xu < 337.5 = 7
|
| xu > 292.5 && xu < 337.5 = N
|
||||||
| xu > 337.5 = 0
|
| xu > 337.5 = NE
|
||||||
in d)
|
in d
|
||||||
else rot'
|
else rot'
|
||||||
ud <- getAffection
|
ud <- getAffection
|
||||||
(nws, _) <- liftIO $ yieldSystemT (worldState ud) $ do
|
(nws, _) <- liftIO $ yieldSystemT (worldState ud) $ do
|
||||||
|
@ -277,8 +277,7 @@ updateMap dt = do
|
||||||
)
|
)
|
||||||
(A.log A.Verbose (show lll ++ " " ++ show len) lll)
|
(A.log A.Verbose (show lll ++ " " ++ show len) lll)
|
||||||
)
|
)
|
||||||
, rot = Set (A.log A.Debug ("dir: " ++ show (direction vel' rot'))
|
, rot = Set (direction vel' rot')
|
||||||
(direction vel' rot'))
|
|
||||||
}
|
}
|
||||||
return ent
|
return ent
|
||||||
updateNPCs
|
updateNPCs
|
||||||
|
|
Loading…
Reference in a new issue