racket/collects/2htdp/private/pad.rkt
2011-12-31 11:28:11 -05:00

38 lines
886 B
Racket

#lang racket/gui
;; provide basic elements for game pad clause in big-bang: the icon, pad-event?
(require racket/runtime-path)
(provide
;; bitmap
game-pad
;; KeyEvent -> Boolean
;; is the given key-event also a pad-event?
pad-event?
;; PadEvent PadEvent -> Boolean
;; are the two pad-events equal?
pad=?
)
;; ---------------------------------------------------------------------------------------------------
(define-runtime-path gamepad-path "gamepad.png")
(define game-pad (read-bitmap gamepad-path 'png/alpha #f #t))
(unless (send game-pad ok?)
(error 'big-bang "the game pad icon isn't available; please report error"))
(define pad-buttons
'("up" "w"
"down" "s"
"left" "a"
"right" "d"
" "
"shift" "rshift"))
(define (pad-event? ke)
(pair? (member ke pad-buttons)))
(define (pad=? ke)
(pair? (member ke pad-buttons)))