summaryrefslogtreecommitdiff
path: root/app/Example/CircleThatMoves.hs
blob: 077ee1e92a7fb633139a7a886d6192b219f104dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
module Example.CircleThatMoves where

import Graphics.Gloss.Interface.Pure.Game
import Scratchy.Syntax

circSprite :: SProg ()
circSprite = NewSprite
  (15,15)
  (Color green $ circleSolid (cellSize * 0.6))
  (\s ->
    OnKeyEvent (Char 'w')
      ( OnTargetReached s
        (\cl -> SetTarget s (nextCell U cl) (Pure ())) $
        Pure ()
      ) $
    OnKeyEvent (Char 's')
      ( OnTargetReached s
        (\cl -> SetTarget s (nextCell D cl) (Pure ())) $
        Pure ()
      ) $
    OnKeyEvent (Char 'a')
      ( OnTargetReached s
        (\cl -> SetTarget s (nextCell L cl) (Pure ())) $
        Pure ()
      ) $
    OnKeyEvent (Char 'd')
      ( OnTargetReached s
        (\cl -> SetTarget s (nextCell R cl) (Pure ())) $
        Pure ()
      ) $
    Pure ()
  )