Communicate target-frame-rate in frame-events
This commit is contained in:
parent
419bb054f1
commit
a5db6ebc18
|
@ -34,7 +34,7 @@
|
|||
(struct window (width height) #:transparent)
|
||||
|
||||
;; Message sent by world. Describes frame about to be rendered.
|
||||
(struct frame-event (counter timestamp) #:transparent)
|
||||
(struct frame-event (counter timestamp target-frame-rate) #:transparent)
|
||||
|
||||
;; Message sent by world. Describes a key event. Key is a sealed
|
||||
;; key-event%. `press?` is #t when the key is pressed (or
|
||||
|
@ -320,7 +320,7 @@
|
|||
(define/override (on-paint)
|
||||
(with-gl-context
|
||||
(lambda ()
|
||||
(inject-event! (message (frame-event counter (sim-time))))
|
||||
(inject-event! (message (frame-event counter (sim-time) target-frame-rate)))
|
||||
(set! counter (+ counter 1))
|
||||
(quiesce!)
|
||||
(unless initialised?
|
||||
|
|
|
@ -46,9 +46,9 @@
|
|||
(patch-project/set/single p key-pressed-projection))
|
||||
(define new-keys-down (set-subtract (set-union keys-down added) removed))
|
||||
(transition (list x y new-keys-down) '())]
|
||||
[(message (at-meta (frame-event _ _)))
|
||||
[(message (at-meta (frame-event _ _ target-frame-rate)))
|
||||
(define-values (old-x old-y) (values x y))
|
||||
(define speed 6)
|
||||
(define speed (/ 360.0 target-frame-rate))
|
||||
(let* ((x (if (set-member? keys-down 'left) (- x speed) x))
|
||||
(x (if (set-member? keys-down 'right) (+ x speed) x))
|
||||
(y (if (set-member? keys-down 'up) (- y speed) y))
|
||||
|
@ -59,13 +59,13 @@
|
|||
(list 100 100 (set))
|
||||
(update-sprites
|
||||
(simple-sprite -0.5 100 100 (image-width CC) (image-height CC) CC))
|
||||
(sub (frame-event ? ?) #:meta-level 1)
|
||||
(sub (frame-event ? ? ?) #:meta-level 1)
|
||||
(sub (key-pressed ?))))
|
||||
|
||||
(define (spawn-frame-counter)
|
||||
(spawn (lambda (e s)
|
||||
(match e
|
||||
[(message (at-meta (frame-event counter elapsed-ms)))
|
||||
[(message (at-meta (frame-event counter elapsed-ms _)))
|
||||
(and (> elapsed-ms 0)
|
||||
(let ((i (text (format "~a fps" (/ counter (/ elapsed-ms 1000.0))) 22 "black")))
|
||||
(transition s (update-sprites (simple-sprite -10 300 10
|
||||
|
@ -74,7 +74,7 @@
|
|||
i)))))]
|
||||
[_ #f]))
|
||||
(void)
|
||||
(sub (frame-event ? ?) #:meta-level 1)))
|
||||
(sub (frame-event ? ? ?) #:meta-level 1)))
|
||||
|
||||
(2d-world (spawn-keyboard-integrator)
|
||||
(spawn-background)
|
||||
|
|
Loading…
Reference in New Issue