aboutsummaryrefslogtreecommitdiff
path: root/src/Display.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/Display.elm')
-rw-r--r--src/Display.elm45
1 files changed, 27 insertions, 18 deletions
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