Update platformer to split mux and relay.

This commit is contained in:
Tony Garnock-Jones 2016-07-30 14:48:30 -04:00
parent 9e3f804aae
commit 5f48f3ba0c
1 changed files with 29 additions and 29 deletions

View File

@ -243,7 +243,7 @@
;; ;;
;; Physics -> DisplayCtl: (pos 'player ...) ;; Physics -> DisplayCtl: (pos 'player ...)
;; note right of DisplayCtl: Compares player pos to level size ;; note right of DisplayCtl: Compares player pos to level size
;; DisplayCtl -> Subscribers: (at-meta (at-meta (scroll-offset ...))) ;; DisplayCtl -> Subscribers: (inbound (inbound (scroll-offset ...)))
;; ;;
;; ================================================================================ ;; ================================================================================
;; ;;
@ -302,11 +302,11 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Various projections ;; Various projections
(define window-projection1 (at-meta (?! (window ? ?)))) (define window-projection1 (inbound (?! (window ? ?))))
(define window-projection3 (at-meta (at-meta (at-meta (?! (window ? ?)))))) (define window-projection3 (inbound* 3 (?! (window ? ?))))
(define scroll-offset-projection (scroll-offset (?!))) (define scroll-offset-projection (scroll-offset (?!)))
(define on-screen-display-projection (?! (on-screen-display ? ? ?))) (define on-screen-display-projection (?! (on-screen-display ? ? ?)))
(define key-pressed-projection (at-meta (at-meta (key-pressed (?!))))) (define key-pressed-projection (inbound* 2 (key-pressed (?!))))
(define position-projection (?! (position ? ? ?))) (define position-projection (?! (position ? ? ?)))
(define impulse-projection (?! (impulse ? ?))) (define impulse-projection (?! (impulse ? ?)))
(define game-piece-configuration-projection (?! (game-piece-configuration ? ? ? ?))) (define game-piece-configuration-projection (?! (game-piece-configuration ? ? ? ?)))
@ -369,20 +369,20 @@
(translate ,(- ofs-x) ,(- ofs-y))) (translate ,(- ofs-x) ,(- ofs-y)))
`((translate ,ofs-x ,ofs-y) `((translate ,ofs-x ,ofs-y)
,@osd-blocks))))] ,@osd-blocks))))]
[(message (at-meta (key-event #\f _ _))) [(message (inbound (key-event #\f _ _)))
(define fullscreen? (not (scene-manager-state-fullscreen? s))) (define fullscreen? (not (scene-manager-state-fullscreen? s)))
(let* ((s (struct-copy scene-manager-state s [fullscreen? fullscreen?]))) (let* ((s (struct-copy scene-manager-state s [fullscreen? fullscreen?])))
(transition s (transition s
(patch-seq (retract 'fullscreen #:meta-level 1) (patch-seq (retract (outbound 'fullscreen))
(if fullscreen? (if fullscreen?
(assert 'fullscreen #:meta-level 1) (assert (outbound 'fullscreen))
patch-empty))))] patch-empty))))]
[_ #f])) [_ #f]))
(scene-manager-state (vector 0 0) (vector 0 0) (set) #f) (scene-manager-state (vector 0 0) (vector 0 0) (set) #f)
(patch-seq (sub (key-event #\f #t ?) #:meta-level 1) (patch-seq (sub (inbound (key-event #\f #t ?)))
(sub (scroll-offset ?)) (sub (scroll-offset ?))
(sub (on-screen-display ? ? ?)) (sub (on-screen-display ? ? ?))
(sub (window ? ?) #:meta-level 1)))) (sub (inbound (window ? ?))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ScoreKeeper ;; ScoreKeeper
@ -390,8 +390,8 @@
(define (spawn-score-keeper) (define (spawn-score-keeper)
(define (update-display new-score) (define (update-display new-score)
(define i (text (format "Score: ~a" new-score) 24 "white")) (define i (text (format "Score: ~a" new-score) 24 "white"))
(patch-seq (retract (on-screen-display ? ? ?) #:meta-level 1) (patch-seq (retract (outbound (on-screen-display ? ? ?)))
(assert (on-screen-display -150 10 (seal i)) #:meta-level 1))) (assert (outbound (on-screen-display -150 10 (seal i))))))
(spawn (lambda (e s) (spawn (lambda (e s)
(match e (match e
[(message (add-to-score delta)) [(message (add-to-score delta))
@ -624,7 +624,7 @@
(update-impulses p))] (update-impulses p))]
[(message (jump-request id)) [(message (jump-request id))
(evaluate-jump-request id s)] (evaluate-jump-request id s)]
[(message (at-meta (at-meta (at-meta (frame-event counter _ elapsed-ms _))))) [(message (inbound* game-level (frame-event counter _ elapsed-ms _)))
(when (zero? (modulo counter 10)) (when (zero? (modulo counter 10))
(log-info "Instantaneous frame rate at frame ~a: ~a Hz" (log-info "Instantaneous frame rate at frame ~a: ~a Hz"
counter counter
@ -641,7 +641,7 @@
(patch-seq (sub (impulse ? ?)) (patch-seq (sub (impulse ? ?))
(sub (game-piece-configuration ? ? ? ?)) (sub (game-piece-configuration ? ? ? ?))
(sub (jump-request ?)) (sub (jump-request ?))
(sub (frame-event ? ? ? ?) #:meta-level game-level)))) (sub (inbound* game-level (frame-event ? ? ? ?))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Player ;; Player
@ -715,12 +715,12 @@
(icon-hitbox-size i) (icon-hitbox-size i)
(set 'player 'mobile 'massive))) (set 'player 'mobile 'massive)))
(sub (position player-id ? ?)) (sub (position player-id ? ?))
(sub (key-pressed 'left) #:meta-level 2) (sub (inbound* 2 (key-pressed 'left)))
(sub (key-pressed 'right) #:meta-level 2) (sub (inbound* 2 (key-pressed 'right)))
(sub (key-pressed #\space) #:meta-level 2) (sub (inbound* 2 (key-pressed #\space)))
(sub (key-pressed 'prior) #:meta-level 2) (sub (inbound* 2 (key-pressed 'prior)))
(sub (key-pressed 'next) #:meta-level 2) (sub (inbound* 2 (key-pressed 'next)))
(sub (key-pressed #\.) #:meta-level 2) (sub (inbound* 2 (key-pressed #\.)))
(sprite-update initial-player-state) (sprite-update initial-player-state)
))) )))
@ -756,7 +756,7 @@
(spawn (lambda (e s) (spawn (lambda (e s)
(match e (match e
[(? patch/added?) (transition s (message (at-meta (level-completed))))] [(? patch/added?) (transition s (message (outbound (level-completed))))]
[_ #f])) [_ #f]))
(void) (void)
(patch-seq (patch-seq
@ -833,7 +833,7 @@
(define damage-actions (for/list [(who to-damage)] (message (damage who 1)))) (define damage-actions (for/list [(who to-damage)] (message (damage who 1))))
(if squashed? (if squashed?
(begin (play-sound-sequence 270325) (begin (play-sound-sequence 270325)
(quit (list damage-actions (message (at-meta (add-to-score 1)))))) (quit (list damage-actions (message (outbound (add-to-score 1))))))
(transition s damage-actions))) (transition s damage-actions)))
(spawn (lambda (e s) (spawn (lambda (e s)
@ -883,8 +883,8 @@
(let ((offset-pos (vector (compute-offset px ww level-width) (let ((offset-pos (vector (compute-offset px ww level-width)
(compute-offset py wh level-height)))) (compute-offset py wh level-height))))
(transition s (transition s
(patch-seq (retract #:meta-level 2 (scroll-offset ?)) (patch-seq (retract (outbound* 2 (scroll-offset ?)))
(assert #:meta-level 2 (scroll-offset offset-pos))))))))) (assert (outbound* 2 (scroll-offset offset-pos))))))))))
(spawn (lambda (e s) (spawn (lambda (e s)
(match e (match e
@ -894,7 +894,7 @@
(update-scroll-offset-from-player-position p))] (update-scroll-offset-from-player-position p))]
[_ #f])) [_ #f]))
(vector 0 0) (vector 0 0)
(patch-seq (sub (window ? ?) #:meta-level game-level) (patch-seq (sub (inbound* game-level (window ? ?)))
(sub (position player-id ? ?)) (sub (position player-id ? ?))
(assert (level-size level-size-vec))))) (assert (level-size level-size-vec)))))
@ -911,16 +911,16 @@
(log-info "Player died! Terminating level.") (log-info "Player died! Terminating level.")
(play-sound-sequence 270328) (play-sound-sequence 270328)
(transition s (quit-dataspace))] (transition s (quit-dataspace))]
[(message (at-meta (level-completed))) [(message (inbound (level-completed)))
(log-info "Level completed! Terminating level.") (log-info "Level completed! Terminating level.")
(play-sound-sequence 270330) (play-sound-sequence 270330)
(transition s (list (message (at-meta (add-to-score 100))) (transition s (list (message (outbound (add-to-score 100)))
(quit-dataspace)))] (quit-dataspace)))]
[_ #f])) [_ #f]))
(void) (void)
(patch-seq (sub (game-piece-configuration player-id ? ? ?)) (patch-seq (sub (game-piece-configuration player-id ? ? ?))
(sub (level-completed) #:meta-level 1) (sub (inbound (level-completed)))
(assert (level-running) #:meta-level 1)))) (assert (outbound (level-running))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; LevelSpawner ;; LevelSpawner
@ -1002,7 +1002,7 @@
))) )))
(define (spawn-numbered-level level-number) (define (spawn-numbered-level level-number)
(list (message (at-meta (at-meta (request-gc)))) (list (message (outbound* 2 (request-gc)))
(if (< level-number (length (force levels))) (if (< level-number (length (force levels)))
(list-ref (force levels) level-number) (list-ref (force levels) level-number)
(spawn-standalone-assertions (spawn-standalone-assertions