diff options
Diffstat (limited to 'examples/simple.scm')
-rw-r--r-- | examples/simple.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/simple.scm b/examples/simple.scm new file mode 100644 index 0000000..f9ee142 --- /dev/null +++ b/examples/simple.scm @@ -0,0 +1,36 @@ +(use-modules ((sdl sdl) #:prefix SDL:) + (figl gl) + (2d sprite) + (2d game-loop) + (2d window) + (2d vector)) + +(define window-width 800) +(define window-height 600) +(define sprite #f) + +(define (key-down key) + (case key + ;; Quit program when ESCAPE or Q is pressed. + ((SDLK_ESCAPE SDLK_q) + (close-window) + (quit)))) + +(define (render) + (draw-sprite sprite)) + +;; Register callbacks. +(set-render-callback (lambda () (render))) +(set-key-down-callback (lambda (key) (key-down key))) + +;; Open the window. +(open-window window-width window-height) + +;; Load a sprite. +;; Must be done AFTER opening the window. +(set! sprite (load-sprite "sprite.png" #:position (vector (/ window-width 2) + (/ window-height 2)))) + +;; Start the game loop. +;; The render callback will be called through this procedure. +(run-game-loop) |