]> gitweb.factorcode.org Git - factor.git/blob - extra/raylib/demo/demo.factor
factor: trim using lists
[factor.git] / extra / raylib / demo / demo.factor
1 ! Copyright (C) 2019 Jack Lucas
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors combinators kernel math namespaces raylib ;
4 IN: raylib.demo
5
6 : say-hello ( -- )
7     "Hello, Factor!" 200 400 60 MAGENTA draw-text ;
8
9 : make-window ( -- )
10     640 480 "Hello, Factor!" init-window
11     60 set-target-fps ;
12
13 : clear-window ( -- )
14     RAYWHITE clear-background  ;
15
16 ! Save our players position in a dynamic var
17 SYMBOL: player
18
19 : show-player-circle ( -- )
20     player get
21     25.0 RED draw-circle-v ;
22
23 : setup-game-vars ( -- )
24     get-screen-width 2 /
25     get-screen-height 2 /
26     Vector2 boa player set ;
27
28 ! Make this cleaner
29 : change-player-position ( -- )
30     player get {
31         { [ KEY_RIGHT is-key-down ] [ [  2.0 + ] change-x ] }
32         { [ KEY_LEFT  is-key-down ] [ [ -2.0 + ] change-x ] }
33         { [ KEY_DOWN  is-key-down ] [ [  2.0 + ] change-y ] }
34         { [ KEY_UP    is-key-down ] [ [ -2.0 + ] change-y ] }
35         [ ]
36     } cond drop ;
37
38 : render-loop ( -- )
39     begin-drawing
40     clear-window show-player-circle say-hello
41     end-drawing ;
42
43 : main ( -- )
44     make-window clear-window setup-game-vars
45     [
46         change-player-position
47         render-loop
48         window-should-close not
49     ] loop close-window ;
50
51 MAIN: main