Optimize(Game): Wire level change events to draw dirty flags
On start!, connects level's coin/maze change callbacks to the draw ADT's mark-coins-dirty! and mark-maze-dirty! methods. This completes the event chain: level state change -> dirty flag -> redraw next frame. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,8 +34,12 @@
|
|||||||
((draw 'animate-pacman!) delta-time))
|
((draw 'animate-pacman!) delta-time))
|
||||||
|
|
||||||
;; start! :: -> /
|
;; start! :: -> /
|
||||||
;; Starts the game by registering all callbacks.
|
;; Starts the game by registering all callbacks and change listeners.
|
||||||
(define (start!)
|
(define (start!)
|
||||||
|
;; Wire level change events to draw dirty flags.
|
||||||
|
((level 'set-on-coins-changed!) (draw 'mark-coins-dirty!))
|
||||||
|
((level 'set-on-maze-changed!) (draw 'mark-maze-dirty!))
|
||||||
|
;; Register graphics callbacks.
|
||||||
((draw 'set-game-loop!) game-loop)
|
((draw 'set-game-loop!) game-loop)
|
||||||
((draw 'set-key-callback!) key-handler)
|
((draw 'set-key-callback!) key-handler)
|
||||||
((draw 'start-drawing!) dispatch-game))
|
((draw 'start-drawing!) dispatch-game))
|
||||||
|
|||||||
Reference in New Issue
Block a user