]> gitweb.factorcode.org Git - factor.git/blob - extra/gamelib/demos/multiple-board-demo/multiple-board-demo.factor
Squashed commit of the following:
[factor.git] / extra / gamelib / demos / multiple-board-demo / multiple-board-demo.factor
1 USING: accessors sequences kernel opengl gamelib.ui colors math
2 math.vectors ui.gadgets.tracks ui.gestures ui.gadgets
3 gamelib.board assocs calendar timers ;
4
5 IN: multiple-board-demo
6
7 : board-init ( -- board )
8     10 10 make-board 
9     { 0 0 } COLOR: blue add-to-cell
10     { } 1sequence ;
11
12 :: move ( board mov -- )
13     board [ COLOR: blue = ] find-cell-pos :> player-pos
14     player-pos mov v+ :> new-pos
15     new-pos first 0 >= 
16     new-pos first 10 < and
17     [ board player-pos new-pos move-entire-cell drop ] when ;
18
19 :: first-gadget ( -- gadget )
20     { 400 400 } init-board-gadget
21     T{ key-down f f "RIGHT" } [ dup board>> first RIGHT move relayout ] new-gesture
22     T{ key-down f f "LEFT" } [ dup board>> first LEFT move relayout ] new-gesture
23     board-init add-board ;
24
25 :: second-gadget ( -- gadget )
26     { 500 400 } init-board-gadget
27     board-init add-board ;
28
29  :: display-window ( -- )
30     first-gadget :> g1
31     second-gadget :> g2
32     { g1 g2 } horizontal 0 f <window> ! initalize two boards   
33     display ;
34
35 MAIN: display-window