diff options
author | Joris Guyonvarch | 2015-03-07 15:12:02 +0100 |
---|---|---|
committer | Joris Guyonvarch | 2015-03-07 15:12:02 +0100 |
commit | 17a58e0c4c67f27d87635bf1b2ca50fb11795ad3 (patch) | |
tree | 8de99cdf0b4021ca6db6920537e7d0fa250e90bc /src/Display.elm | |
parent | 336816d2e8ab4afff1562123dfde61bf3a68e61c (diff) |
Organizing source code with subdirectories
Diffstat (limited to 'src/Display.elm')
-rw-r--r-- | src/Display.elm | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/src/Display.elm b/src/Display.elm deleted file mode 100644 index 48e6cd6..0000000 --- a/src/Display.elm +++ /dev/null @@ -1,132 +0,0 @@ -module Display where - -import List - -import Graphics.Collage (..) -import Graphics.Element (Element) -import Color (..) -import Text (..) -import Text -import Html (..) -import Html.Attributes (..) -import Html.Attributes as A -import Json.Encode (string) - -import Vec2 (Vec2) -import Player (..) -import Game (Game) -import Point (..) -import Board (boardSize) -import Config (..) - -display : Game -> Html -display game = - div - [] - [ h1 [] [ text "cAtchVoid" ] - , div - [ id "game" ] - [ fromElement << displayGame <| game ] - , p - [] - [ text "Catch the points of your color, avoid the other points." ] - , p - [] - [ text "Use the arrow keys to move and 'e' to change your color." ] - , a - [ href "https://github.com/guyonvarch/catchvoid" ] - [ img - [ A.style - [ ("position", "absolute") - , ("top", "0") - , ("right", "0") - , ("border", "0") - ] - , src "https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" - , alt "Fork me on GitHub" - , property "data-canonical-src" (string "https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png") - ] - [] - ] - ] - -displayGame : Game -> Element -displayGame {time, score, player, cloud, bestScore} = - let whitePointForms = List.map (pointForm time (configColor White)) (cloud.points White) - blackPointForms = List.map (pointForm time (configColor Black)) (cloud.points Black) - forms = boardForms - ++ playerForms player - ++ whitePointForms - ++ blackPointForms - ++ scoreForms score - ++ bestScoreForms bestScore - in collage (truncate boardSize.x) (truncate boardSize.y) forms - -boardForms : List Form -boardForms = [filled boardColor (rect boardSize.x boardSize.y)] - -boardColor : Color -boardColor = rgb 103 123 244 - -playerForms : Player -> List Form -playerForms player = - let playerColor = configColor player.config - in [circleForm player.pos playerSize playerColor] - -playerColor : Color -playerColor = rgb 224 224 224 - -pointForm : Float -> Color -> Point -> Form -pointForm time color point = - let pos = pointMove point time - in circleForm pos pointSize color - -configColor : Config -> Color -configColor config = - case config of - White -> rgb 240 240 240 - Black -> rgb 14 17 33 - -circleForm : Vec2 -> Float -> Color -> Form -circleForm pos size color = - let outline = circle size - |> filled outlineColor - inside = circle (size - 1) - |> filled color - in group [outline, inside] - |> move (pos.x, pos.y) - -outlineColor : Color -outlineColor = rgb 34 34 34 - -scoreForms : Int -> List Form -scoreForms score = - let text = (toString score) - scorePos = { x = 0.0, y = boardSize.y / 2 - 30 } - in [textForm text scorePos centered] - -bestScoreForms : Int -> List Form -bestScoreForms bestScore = - if(bestScore > 0) then - let text = "Record: " ++ (toString bestScore) - pos = - { x = -boardSize.x / 2 + 100 - , y = -boardSize.y / 2 + 30 - } - in [textForm text pos leftAligned] - else [] - -textForm : String -> Vec2 -> (Text -> Element) -> Form -textForm content pos alignment = - let textElement = fromString content - |> Text.height 30 - |> typeface ["calibri", "arial"] - |> Text.color textColor - |> bold - |> alignment - in textElement - |> toForm - |> move (pos.x, pos.y) - -textColor : Color -textColor = rgb 14 17 33 |