From d0ff41fb7a33c096a792ab57f5bbf7992b1cc399 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 4 May 2014 14:03:00 -0400 Subject: 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. --- 2d/signal.scm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to '2d/signal.scm') 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))) -- cgit v1.2.3