From a1a3dbadffaaab290a6b6bb4b61df787d3b8ffdd Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Fri, 3 Oct 2014 16:18:24 +0200 Subject: Adding a target to catch --- src/Display.elm | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) (limited to 'src/Display.elm') diff --git a/src/Display.elm b/src/Display.elm index cb9fb86..b586129 100644 --- a/src/Display.elm +++ b/src/Display.elm @@ -5,22 +5,24 @@ import Player (..) import Game (Game) import Enemy (..) import Board (boardSize) +import Target (..) display : Game -> Element -display {time, player, enemyState, bestTime} = +display {time, player, target, enemyState, bestScore} = let enemyForms = map (enemyForm time) enemyState.enemies forms = boardForms ++ playerForms player + ++ targetForms target.pos ++ enemyForms - ++ bestTimeForms bestTime - ++ timeForms time + ++ scoreForms target.score + ++ bestScoreForms bestScore in collage (truncate boardSize.x) (truncate boardSize.y) forms boardForms : [Form] boardForms = [filled boardColor (rect boardSize.x boardSize.y)] boardColor : Color -boardColor = rgb 34 122 34 +boardColor = rgb 17 17 17 playerForms : Player -> [Form] playerForms player = [circleForm player.pos playerSize playerColor] @@ -28,6 +30,12 @@ playerForms player = [circleForm player.pos playerSize playerColor] playerColor : Color playerColor = rgb 224 224 224 +targetForms : Vec2 -> [Form] +targetForms pos = [circleForm pos targetSize targetColor] + +targetColor : Color +targetColor = rgb 34 85 34 + enemyForm : Float -> Enemy -> Form enemyForm time enemy = let pos = enemyMove enemy time @@ -39,17 +47,25 @@ enemyColor = rgb 170 0 0 circleForm : Vec2 -> Float -> Color -> Form circleForm pos size color = let outline = circle size - |> filled black - inside = circle (size - 2) + |> filled outlineColor + inside = circle (size - 1) |> filled color in group [outline, inside] |> move (pos.x, pos.y) -bestTimeForms : Float -> [Form] -bestTimeForms bestTime = - if(bestTime > 0) then - let seconds = truncate (bestTime / 1000) - text = "Record: " ++ (show seconds) +outlineColor : Color +outlineColor = rgb 34 34 34 + +scoreForms : Int -> [Form] +scoreForms score = + let text = (show score) + scorePos = { x = 0.0, y = boardSize.y / 2 - 30 } + in [textForm text scorePos centered] + +bestScoreForms : Int -> [Form] +bestScoreForms bestScore = + if(bestScore > 0) then + let text = "Record: " ++ (show bestScore) pos = { x = boardSize.x / 2 - 65 , y = -boardSize.y / 2 + 30 @@ -57,13 +73,6 @@ bestTimeForms bestTime = in [textForm text pos rightAligned] else [] -timeForms : Float -> [Form] -timeForms time = - let seconds = truncate (time / 1000) - text = (show seconds) - pos = { x = 0.0, y = boardSize.y / 2 - 30 } - in [textForm text pos centered] - textForm : String -> Vec2 -> (Text -> Element) -> Form textForm content pos alignment = let textElement = toText content -- cgit v1.2.3