User can get score if he helps the bird avoid the attack of the walls successfully. How to implement that?
import Color exposing (..) import Graphics.Collage exposing (..) import Graphics.Element exposing (..) import Keyboard import Text import Time exposing (..) import Window -- SIGNALS bird = { x=0, y=0, vx=0, vy=0 } -- moves the walls only physics t (b, w1, w2, w1x, w2x) = if w1x < w2x then ({ b | y = b.y + t*b.vy , x = b.x + t*b.vx }, w1 |> move (5,0), w2 |> move (-5,0), w1x + 5, w2x - 5 ) else if (b.x < w1x || b.x > w2x )then (b, w2, w1, -gameWidth/2 + 100, gameWidth/2 - 100) else (b, w1, w2, w1x, w2x) -- moves the bird only walk {x,y} (b, w1, w2, w1x, w2x) = ({ b | vx = toFloat x, vy = toFloat y }, w1, w2, w1x, w2x) step (dt, keys) = walk keys >> physics dt (gameWidth,gameHeight) = (500,500) wall1 = toForm (collage gameWidth gameHeight [ rect 100 100 |> filled (rgb 250 230 0) |> move (50-gameWidth/2, gameHeight/2-50) ,rect 80 100 |> filled (rgb 250 230 0) |> move (40-gameWidth/2, gameHeight/2-150) , rect 50 100 |> filled (rgb 250 230 0) |> move (25-gameWidth/2, gameHeight/2-250) , rect 100 100 |> filled (rgb 250 230 0) |> move (50-gameWidth/2, gameHeight/2-350) , rect 80 100 |> filled (rgb 250 230 0) |> move (40-gameWidth/2, gameHeight/2-450) ]) wall2 = toForm (collage gameWidth gameHeight [ rect 100 100 |> filled (rgb 250 230 0) |> move (gameWidth/2-50, gameHeight/2-50) , rect 120 100 |> filled (rgb 250 230 0) |> move (gameWidth/2-60, gameHeight/2-150) , rect 50 100 |> filled (rgb 250 230 0) |> move (gameWidth/2-25, gameHeight/2-250) , rect 100 100 |> filled (rgb 250 230 0) |> move (gameWidth/2-50, gameHeight/2-350) , rect 120 100 |> filled (rgb 250 230 0) |> move (gameWidth/2-60, gameHeight/2-450)]) render (w',h') (bird, wall1, wall2, w1x, w2x) = let (w,h) = (toFloat w', toFloat h') src = "bee.PNG" in collage w' h' [ rect gameWidth gameHeight |> filled (rgb 174 238 238) , toForm (image 50 50 src) |> move (bird.x, bird.y) , wall1 , wall2 -- text (Text.fromString (toString (w1x, w2x))) ] -- bird input = let delta = Signal.map (\t -> t/10) (fps 10) in Signal.sampleOn delta (Signal.map2 (,) delta Keyboard.arrows) main = Signal.map2 render Window.dimensions (Signal.foldp step (bird, wall1, wall2, -gameWidth/2 + 100, gameWidth/2 - 100) input) -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.