From cc2ec6e8536752b5070cc264ce4fa42d62806b64 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 8 Aug 2018 18:54:29 +0200 Subject: death: Trigger fade out only once. --- scenes/death.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scenes/death.scm b/scenes/death.scm index 1e35563..8f7048a 100644 --- a/scenes/death.scm +++ b/scenes/death.scm @@ -43,6 +43,7 @@ (define-asset vignette-image (load-image "assets/images/vignette.png")) (define-class () + (quitting? #:accessor quitting? #:init-form #f) (tile-map #:accessor tile-map #:init-form death-map) (pretend-walking? #:accessor pretend-walking? #:init-form #f)) @@ -200,12 +201,14 @@ void main (void) { (define-method (on-key-press (death ) key mods repeat?) ;; Fade out - (script - (tween 60 0.0 1.0 - (lambda (alpha) - (set! (color (child-ref (parent death) 'fade-all)) - (make-color 0 0 0 alpha)))) - (abort-game))) + (unless (quitting? death) + (set! (quitting? death) #t) + (script + (tween 60 0.0 1.0 + (lambda (alpha) + (set! (color (child-ref (parent death) 'fade-all)) + (make-color 0 0 0 alpha)))) + (abort-game)))) (define-method (update (game ) dt) ;; Keep the player (and the fade box) in the centre -- cgit v1.2.3