diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/action.scm | 21 | ||||
-rw-r--r-- | examples/animation.scm | 39 | ||||
-rw-r--r-- | examples/coroutine.scm | 18 | ||||
-rw-r--r-- | examples/particles.scm | 1 | ||||
-rw-r--r-- | examples/simple.scm | 14 | ||||
-rw-r--r-- | examples/tilemap.scm | 2 |
6 files changed, 44 insertions, 51 deletions
diff --git a/examples/action.scm b/examples/action.scm index acc1434..eb2d65e 100644 --- a/examples/action.scm +++ b/examples/action.scm @@ -7,11 +7,17 @@ (2d actions) (2d vector)) -(init-2d) - (define window-width 800) (define window-height 600) -(define sprite #f) + +;; Open the window. +(open-window window-width window-height) + +;; Load a sprite and center it on the screen. +(define sprite + (load-sprite "images/sprite.png" + #:position (vector (/ window-width 2) + (/ window-height 2)))) (define (key-down key mod unicode) (cond ((any-equal? key 'escape 'q) @@ -26,15 +32,6 @@ (add-hook! on-render-hook (lambda () (render))) (add-hook! on-key-down-hook (lambda (key mod unicode) (key-down key mod unicode))) -;; Open the window. -(open-window window-width window-height) - -;; Load a sprite and center it on the screen. -(set! sprite - (load-sprite "images/sprite.png" - #:position (vector (/ window-width 2) - (/ window-height 2)))) - ;; Simple script that moves the sprite to a random location every ;; second. (agenda-schedule diff --git a/examples/animation.scm b/examples/animation.scm index 1e478a3..d00a9df 100644 --- a/examples/animation.scm +++ b/examples/animation.scm @@ -6,11 +6,11 @@ (2d vector) (2d window)) -(init-2d) - (define window-width 800) (define window-height 600) -(define sprite #f) + +;; Open the window. +(open-window window-width window-height) (define (key-down key mod unicode) (cond ((any-equal? key 'escape 'q) @@ -25,23 +25,24 @@ (add-hook! on-render-hook (lambda () (render))) (add-hook! on-key-down-hook (lambda (key mod unicode) (key-down key mod unicode))) -;; Open the window. -(open-window window-width window-height) - ;; Load a texture, split it into 64x64 tiles, and build an animated ;; sprite out of it. -(let* ((tiles (split-texture (load-texture "images/princess.png") 64 64)) - (frames (vector (vector-ref tiles 19) - (vector-ref tiles 20) - (vector-ref tiles 21) - (vector-ref tiles 22) - (vector-ref tiles 23) - (vector-ref tiles 24) - (vector-ref tiles 25) - (vector-ref tiles 26))) - (animation (make-animation frames 6 #t))) - (set! sprite (make-sprite animation - #:position (vector (/ window-width 2) - (/ window-height 2))))) +(define animation + (let* ((tiles (split-texture (load-texture "images/princess.png") 64 64)) + (frames (vector (vector-ref tiles 19) + (vector-ref tiles 20) + (vector-ref tiles 21) + (vector-ref tiles 22) + (vector-ref tiles 23) + (vector-ref tiles 24) + (vector-ref tiles 25) + (vector-ref tiles 26)))) + (make-animation frames 6 #t))) + +(define sprite + (make-sprite animation + #:position (vector (/ window-width 2) + (/ window-height 2)))) + (run-game-loop) diff --git a/examples/coroutine.scm b/examples/coroutine.scm index 2bf7ecb..250cdbb 100644 --- a/examples/coroutine.scm +++ b/examples/coroutine.scm @@ -5,11 +5,16 @@ (2d agenda) (2d coroutine)) -(init-2d) - (define window-width 800) (define window-height 600) -(define sprite #f) + +;; Open the window. +(open-window window-width window-height) + +(define sprite + (load-sprite "images/sprite.png" + #:position (vector (/ window-width 2) + (/ window-height 2)))) (define (key-down key mod unicode) (cond ((any-equal? key 'escape 'q) @@ -24,13 +29,6 @@ (add-hook! on-render-hook (lambda () (render))) (add-hook! on-key-down-hook (lambda (key mod unicode) (key-down key mod unicode))) -;; Open the window. -(open-window window-width window-height) - -;; Load a sprite and center it on the screen. -(set! sprite (load-sprite "images/sprite.png" #:position (vector (/ window-width 2) - (/ window-height 2)))) - ;; Simple script that moves the sprite to a random location every ;; second. (agenda-schedule diff --git a/examples/particles.scm b/examples/particles.scm index a71bc13..5251ac0 100644 --- a/examples/particles.scm +++ b/examples/particles.scm @@ -9,7 +9,6 @@ (2d window)) (set! *random-state* (random-state-from-platform)) -(init-2d) ;;; ;;; Particles diff --git a/examples/simple.scm b/examples/simple.scm index c55de6f..751c214 100644 --- a/examples/simple.scm +++ b/examples/simple.scm @@ -3,11 +3,14 @@ (2d window) (2d helpers)) -(init-2d) - (define window-width 800) (define window-height 600) -(define sprite #f) + +;; Open the window. +(open-window window-width window-height) + +(define sprite (load-sprite "images/grass.jpg" #:position (vector (/ window-width 2) + (/ window-height 2)))) (define (quit-demo) (close-window) @@ -26,13 +29,10 @@ (add-hook! on-render-hook (lambda () (render))) (add-hook! on-key-down-hook (lambda (key mod unicode) (key-down key mod unicode))) -;; Open the window. -(open-window window-width window-height) ;; Load a sprite and center it on the screen. ;; Must be done AFTER opening the window. -(set! sprite (load-sprite "images/sprite.png" #:position (vector (/ window-width 2) - (/ window-height 2)))) +;; (set! ) ;; Start the game loop. ;; The render callback will be called through this procedure. diff --git a/examples/tilemap.scm b/examples/tilemap.scm index 1f19eb3..5655527 100644 --- a/examples/tilemap.scm +++ b/examples/tilemap.scm @@ -8,8 +8,6 @@ (2d vector) (2d window)) -(init-2d) - ;;; ;;; Orthogonal tile map example ;;; |