diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-05 19:47:05 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-05 19:47:05 +0100 |
| commit | 027053b11a3a5d861ed2fa2db245388bd95ac246 (patch) | |
| tree | 84dfd90642bb6d8eb4e0e3fa3a9d651ba29b41e8 /demo/audio.scm | |
| parent | 927f37639a3d5a0d881a5c8709f2cf577aadb15e (diff) | |
Progress
Diffstat (limited to 'demo/audio.scm')
| -rw-r--r-- | demo/audio.scm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/demo/audio.scm b/demo/audio.scm new file mode 100644 index 0000000..8ae4d62 --- /dev/null +++ b/demo/audio.scm @@ -0,0 +1,52 @@ +(import scheme + (chicken base) + (prefix sdl2 "sdl2:") + (prefix sdl2-ttf "ttf:") + (prefix sdl2-image "img:") + downstroke/engine + downstroke/renderer + downstroke/input + downstroke/assets + downstroke/sound) + +(define *music-on?* #f) + +(define *game* + (make-game + title: "Demo: Audio" width: 600 height: 400 + + preload: (lambda (game) + (init-audio!) + (load-sounds! '((jump . "demo/assets/jump.wav"))) + (load-music! "demo/assets/theme.ogg") + (game-asset-set! game 'font + (ttf:open-font "demo/assets/DejaVuSans.ttf" 20))) + + update: (lambda (game dt) + (let ((input (game-input game))) + (when (input-pressed? input 'a) + (play-sound 'jump)) + (when (input-pressed? input 'b) + (if *music-on?* + (begin (stop-music!) (set! *music-on?* #f)) + (begin (play-music! 0.5) (set! *music-on?* #t)))))) + + render: (lambda (game) + (let* ((renderer (game-renderer game)) + (font (game-asset game 'font)) + (white (sdl2:make-color 255 255 255 255)) + (gray (sdl2:make-color 180 180 180 255))) + (set! (sdl2:render-draw-color renderer) (sdl2:make-color 30 30 60 255)) + (sdl2:render-fill-rect! renderer (sdl2:make-rect 0 0 600 400)) + (draw-ui-text renderer font "Audio Demo" white 220 80) + (draw-ui-text renderer font "J / Z -- play sound effect" gray 160 160) + (draw-ui-text renderer font "K / X -- toggle music on/off" gray 160 200) + (draw-ui-text renderer font "Escape -- quit" gray 160 240) + (draw-ui-text renderer font + (if *music-on?* "Music: ON" "Music: OFF") + (if *music-on?* + (sdl2:make-color 100 255 100 255) + (sdl2:make-color 255 100 100 255)) + 240 310))))) + +(game-run! *game*) |
