From f08e14fd51e2b1f5920ac6816774c5e72cbee5c0 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 14 Apr 2020 17:02:17 -0400 Subject: Day 4 progress. --- lisparuga.scm | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'lisparuga.scm') diff --git a/lisparuga.scm b/lisparuga.scm index dc611cd..e5fb888 100644 --- a/lisparuga.scm +++ b/lisparuga.scm @@ -65,21 +65,22 @@ (make #:name 'background #:rank 0 - #:texture background)) + #:texture background) + (make + #:name 'game + #:rank 1 + #:position (vec2 80.0 0.0)))) + +(define-method (on-enter (lisparuga )) (new-game-transition lisparuga)) -(define (new-game-transition lisparuga) +(define-method (new-game-transition lisparuga) (set! (state lisparuga) 'play) (let ((game-over (& lisparuga game-over))) (and game-over (detach game-over))) - (let ((old-game (& lisparuga game))) - (and old-game (detach old-game))) - (attach-to lisparuga - (make - #:name 'game - #:rank 1 - #:position (vec2 80.0 0.0))) - (set! (state lisparuga) 'play)) + (reset (& lisparuga game)) + (set! (state lisparuga) 'play) + (start-stage (& lisparuga game))) (define-method (game-over-transition (lisparuga )) (set! (state lisparuga) 'game-over) @@ -122,14 +123,13 @@ (define-method (on-key-press (lisparuga ) key scancode modifiers repeat?) (match (state lisparuga) ('play - (unless repeat? - (match key - ('z (start-player-shooting (& lisparuga game))) - ('x (toggle-player-polarity (& lisparuga game))) - ('c (fire-player-homing-missiles (& lisparuga game))) - ('r (spawn-enemies (& lisparuga game))) - ('e (set! (energy (& lisparuga game player)) 120)) - (_ #t)))) + (match key + ('z (start-player-shooting (& lisparuga game))) + ('x (unless repeat? + (toggle-player-polarity (& lisparuga game)))) + ('c (unless repeat? + (fire-player-homing-missiles (& lisparuga game)))) + (_ #t))) ((or 'win 'game-over) (match key ('return (new-game-transition lisparuga)) -- cgit v1.2.3