;;; Lisp Game Jam 2018 ;;; Copyright © 2018 David Thompson ;;; ;;; This program is free software: you can redistribute it and/or ;;; modify it under the terms of the GNU General Public License as ;;; published by the Free Software Foundation, either version 3 of the ;;; License, or (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program. If not, see ;;; . (define-module (engine scene) #:use-module (chickadee audio) #:use-module (engine node-2d) #:use-module (oop goops) #:export ( background-music background-music-volume background-music-loop?)) (define-class () (background-music #:accessor background-music #:init-form #f #:init-keyword #:music) (background-music-volume #:accessor background-music-volume #:init-form 1.0 #:init-keyword #:music-volume) (background-music-loop? #:accessor background-music-loop? #:init-form #t #:init-keyword #:music-loop?)) (define-method (on-enter (scene )) (if (music? (background-music scene)) (begin (set-music-volume! (background-music-volume scene)) (play-music (background-music scene) #:loop? (background-music-loop? scene))) (stop-music))) (define-method (on-exit (scene )) (stop-music))