summaryrefslogtreecommitdiff
path: root/app/Example/CircleThatMoves.hs
blob: d173a3da95d3e2be61b2c2bb00037c8447c93c6c (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
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 ())