Remove 2d-world-meta-level parameter in favour of explicit arguments
This commit is contained in:
parent
5409cebe88
commit
8083ddf890
|
@ -7,7 +7,6 @@
|
||||||
(struct-out scene)
|
(struct-out scene)
|
||||||
(except-out (struct-out sprite) sprite)
|
(except-out (struct-out sprite) sprite)
|
||||||
(rename-out [sprite <sprite>] [make-sprite sprite])
|
(rename-out [sprite <sprite>] [make-sprite sprite])
|
||||||
2d-world-meta-level
|
|
||||||
simple-sprite
|
simple-sprite
|
||||||
update-scene
|
update-scene
|
||||||
update-sprites
|
update-sprites
|
||||||
|
@ -57,19 +56,9 @@
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; TODO: Parameters don't work very well for this. We want it to be a
|
(define (update-scene prelude postlude #:meta-level [meta-level 1])
|
||||||
;; local, relative idea -- some actors will engage at metalevel 1,
|
(patch-seq (retract (scene ? ?) #:meta-level meta-level)
|
||||||
;; some at metalevel 2, and we would prefer to just be able to say
|
(assert (scene (seal prelude) (seal postlude)) #:meta-level meta-level)))
|
||||||
;; (parameterize ((2d-world-meta-level N)) (spawn ...)), but we can't,
|
|
||||||
;; because parameterization *isn't lexical enough*.
|
|
||||||
;;
|
|
||||||
;; Perhaps the current-parameterization should be saved at spawn time?
|
|
||||||
;;
|
|
||||||
(define 2d-world-meta-level (make-parameter 1))
|
|
||||||
|
|
||||||
(define (update-scene prelude postlude)
|
|
||||||
(patch-seq (retract (scene ? ?) #:meta-level (2d-world-meta-level))
|
|
||||||
(assert (scene (seal prelude) (seal postlude)) #:meta-level (2d-world-meta-level))))
|
|
||||||
|
|
||||||
(define (make-sprite z instructions)
|
(define (make-sprite z instructions)
|
||||||
(sprite z (seal instructions)))
|
(sprite z (seal instructions)))
|
||||||
|
@ -79,21 +68,21 @@
|
||||||
(scale ,w ,h)
|
(scale ,w ,h)
|
||||||
(texture ,i))))
|
(texture ,i))))
|
||||||
|
|
||||||
(define (update-sprites . ss)
|
(define (update-sprites #:meta-level [meta-level 1] . ss)
|
||||||
(patch-seq* (cons (retract (sprite ? ?) #:meta-level (2d-world-meta-level))
|
(patch-seq* (cons (retract (sprite ? ?) #:meta-level meta-level)
|
||||||
(map (lambda (s) (assert s #:meta-level (2d-world-meta-level))) ss))))
|
(map (lambda (s) (assert s #:meta-level meta-level)) ss))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; KeyboardIntegrator. Integrates key-events into key-pressed assertions.
|
;; KeyboardIntegrator. Integrates key-events into key-pressed assertions.
|
||||||
(define (spawn-keyboard-integrator)
|
(define (spawn-keyboard-integrator #:meta-level [meta-level 1])
|
||||||
(spawn (lambda (e s)
|
(spawn (lambda (e s)
|
||||||
(match e
|
(match e
|
||||||
[(message (at-meta (key-event code press? _)))
|
[(message (at-meta (key-event code press? _)))
|
||||||
(transition (void) ((if press? assert retract) (key-pressed code)))]
|
(transition (void) ((if press? assert retract) (key-pressed code)))]
|
||||||
[#f #f]))
|
[#f #f]))
|
||||||
(void)
|
(void)
|
||||||
(sub (key-event ? ? ?) #:meta-level (2d-world-meta-level))))
|
(sub (key-event ? ? ?) #:meta-level meta-level)))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue