From 17a61d9d0c5675a1b5bf8a3abac15c62a0eb1181 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 24 Jun 2013 21:03:57 -0400 Subject: Add some rough example programs. --- examples/simple.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 examples/simple.scm (limited to 'examples/simple.scm') 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) -- cgit v1.2.3