first commit
This commit is contained in:
52
pacman-project/keyboard-handler.rkt
Normal file
52
pacman-project/keyboard-handler.rkt
Normal file
@@ -0,0 +1,52 @@
|
||||
#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!))))
|
||||
Reference in New Issue
Block a user