diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-05-04 14:03:00 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-05-04 14:39:38 -0400 |
commit | d0ff41fb7a33c096a792ab57f5bbf7992b1cc399 (patch) | |
tree | 4b9bd31e0fd6ae71245892a353af83628372e63e /2d/signal.scm | |
parent | c2a7defe0d13b20e50dbaf8aa48ffef5f65de65b (diff) |
Add current-agenda parameter.
* 2d/agenda.scm (current-agenda): New variable.
(with-agenda): New macro.
(agenda-time, tick-agenda!, clear-agenda!, schedule)
(schedule-interval, schedule-each, wait): Remove agenda parameter.
* 2d/game.scm (game-agenda): Delete it.
(update): Tick current agenda.
* 2d/helpers.scm (define-guardian): Remove agenda argument.
* 2d/repl.scm (start-2d-repl): Remove agenda argument to schedule-each.
* 2d/signal.scm (signal-sample, signal-delay, signal-throttle): Remove
agenda parameter.
* 2d/sprite.scm:
* examples/common.scm:
* examples/coroutine.scm:
* examples/font.scm:
* examples/particles.scm: Remove mention of game-agenda.
* README.org: Update example snippets.
Diffstat (limited to '2d/signal.scm')
-rw-r--r-- | 2d/signal.scm | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/2d/signal.scm b/2d/signal.scm index 58cb0a4..efbb103 100644 --- a/2d/signal.scm +++ b/2d/signal.scm @@ -260,33 +260,33 @@ SIGNAL. This signal is a convenient way to sneak a procedure that has a side-effect into a signal chain." (signal-map (lambda (x) (proc x) x) signal)) -(define (signal-sample agenda delay signal) +(define (signal-sample delay signal) "Create a new signal that emits the value contained within SIGNAL -every DELAY ticks of AGENDA." +every DELAY ticks of the current agenda." (let ((sampler (%make-signal (signal-ref signal) #f '()))) (define (tick) (%signal-set! sampler (signal-ref signal))) - (schedule-interval agenda tick delay) + (schedule-interval tick delay) (make-signal-box sampler))) -(define (signal-delay agenda delay signal) +(define (signal-delay delay signal) "Create a new signal that delays propagation of SIGNAL by DELAY -ticks of AGENDA." +ticks of the current agenda." (make-boxed-signal (signal-ref signal) (lambda (self value) - (schedule agenda - (lambda () - (%signal-set! self value)) - delay)) + (schedule + (lambda () + (%signal-set! self value)) + delay)) (list signal))) -(define (signal-throttle agenda delay signal) +(define (signal-throttle delay signal) "Return a new signal that propagates SIGNAL at most once every DELAY -ticks of AGENDA." +ticks of the current agenda." (make-boxed-signal (signal-ref signal) - (let ((last-time (agenda-time agenda))) + (let ((last-time (agenda-time))) (lambda (self value) - (when (>= (- (agenda-time agenda) last-time) delay) + (when (>= (- (agenda-time) last-time) delay) (%signal-set! self value) - (set! last-time (agenda-time agenda))))) + (set! last-time (agenda-time))))) (list signal))) |