#lang r7rs ; Keyboard-handler ; (define-library (pacman-project keyboard-handler) (import (scheme base) (scheme write) (pacman-project screen) (pacman-project maze) (pacman-project pacman) (pacman-project game-logic) (pacman-project pause-menu) (pacman-project main-loop)) (export start-keyboard-handler!) (begin ;toetsen te beheren (define (handle-keyboard! state key) (when (eq? state 'pressed) (cond ((eq? key 'escape) (if (not (paused?)) (begin (set-paused! #t) (stop-main-loop!) (draw-pause-menu!)) (begin (remove-pause-menu!) (set-paused! #f) (start-main-loop!)))) ((not (paused?)) (let ((cell cell-size)) (cond ((eq? key 'right) (move-pacman! cell 0) (rotate-pacman! 'right)) ((eq? key 'left) (move-pacman! (- cell) 0) (rotate-pacman! 'left)) ((eq? key 'up) (move-pacman! 0 (- cell)) (rotate-pacman! 'up)) ((eq? key 'down) (move-pacman! 0 cell) (rotate-pacman! 'down)))))))) ;zodat de keyboard geconnecteert is met het spelscherm (define (start-keyboard-handler!) ((screen 'set-key-callback!) handle-keyboard!))))