Skip to content

Instantly share code, notes, and snippets.

@davidmason
Created December 1, 2015 09:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidmason/8707e93504252c8a4f98 to your computer and use it in GitHub Desktop.
Save davidmason/8707e93504252c8a4f98 to your computer and use it in GitHub Desktop.
playing around with Elm graphics to see what sort of things I can do
import Color exposing (..)
import Graphics.Collage exposing (..)
import Graphics.Element exposing (..)
import Time exposing (fps)
import Transform2D exposing (scaleX)
framerate = 100.0
cow = image 24 28 "http://i.neoseeker.com/cm/42/badges/BCow2.png"
chicken = image 40 40 "http://fogu.com/hm/snes/img/chicken.gif"
main = Signal.map draw (Time.fps framerate)
draw : Float -> Element
draw delta =
let speedFactor = delta * framerate / 1000
in
collage 500 500
[ ngon 4 (75 / speedFactor)
|> filled clearGrey
|> move (-10,0)
, ngon 5 50
|> filled clearGrey
|> move (40,10 * speedFactor)
, show speedFactor
|> toForm
, cow
|> toForm
|> move (-30, 10 * speedFactor - 10)
|> mirror
, chicken
|> toForm
|> move (50, 20 * speedFactor - 20)
|> mirror
, triangle 0
, triangle 50
|> move (50, 50)
, triangle 100
|> move (50, 50)
|> mirror
, triangle 150
|> move (50, -50)
|> mirror
, triangle 200
|> mirror
|> move (-50, -50)
, triangle 250
|> move (-50, -50)
]
clearGrey : Color
clearGrey =
rgba 111 111 111 0.6
-- mirrors from center, how to different?
mirror : Form -> Form
mirror form =
groupTransform (scaleX -1) [form]
triangle greenness =
ngon 3 20
|> filled (rgba 111 greenness 111 0.6)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment