Support 2d-world-meta-level parameter. TODO revisit parameterization
This commit is contained in:
parent
2420abe2e1
commit
5409cebe88
|
@ -7,6 +7,7 @@
|
|||
(struct-out scene)
|
||||
(except-out (struct-out sprite) sprite)
|
||||
(rename-out [sprite <sprite>] [make-sprite sprite])
|
||||
2d-world-meta-level
|
||||
simple-sprite
|
||||
update-scene
|
||||
update-sprites
|
||||
|
@ -56,9 +57,19 @@
|
|||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; TODO: Parameters don't work very well for this. We want it to be a
|
||||
;; local, relative idea -- some actors will engage at metalevel 1,
|
||||
;; some at metalevel 2, and we would prefer to just be able to say
|
||||
;; (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 1)
|
||||
(assert (scene (seal prelude) (seal postlude)) #:meta-level 1)))
|
||||
(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)
|
||||
(sprite z (seal instructions)))
|
||||
|
@ -69,8 +80,8 @@
|
|||
(texture ,i))))
|
||||
|
||||
(define (update-sprites . ss)
|
||||
(patch-seq* (cons (retract (sprite ? ?) #:meta-level 1)
|
||||
(map (lambda (s) (assert s #:meta-level 1)) ss))))
|
||||
(patch-seq* (cons (retract (sprite ? ?) #:meta-level (2d-world-meta-level))
|
||||
(map (lambda (s) (assert s #:meta-level (2d-world-meta-level))) ss))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
@ -82,7 +93,7 @@
|
|||
(transition (void) ((if press? assert retract) (key-pressed code)))]
|
||||
[#f #f]))
|
||||
(void)
|
||||
(sub (key-event ? ? ?) #:meta-level 1)))
|
||||
(sub (key-event ? ? ?) #:meta-level (2d-world-meta-level))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
|
Loading…
Reference in New Issue