aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game.scm34
-rw-r--r--src/inputmap.scm14
-rw-r--r--src/tilemap.scm4
3 files changed, 47 insertions, 5 deletions
diff --git a/src/game.scm b/src/game.scm
index bdabbf1..c4e1356 100644
--- a/src/game.scm
+++ b/src/game.scm
@@ -11,7 +11,8 @@
(prefix sdl2-ttf "ttf:")
(prefix sdl2-image "img:")
matchable
- tilemap)
+ tilemap
+ defstruct)
(define +color-depth+ 32)
(define +screen-width+ 600)
@@ -125,6 +126,29 @@
(set! (sdl2:render-draw-color *renderer*) +background-color+)
(sdl2:render-clear! *renderer*)
+(defstruct keymap
+ jump
+ left
+ right
+ attack
+ macro)
+
+(define keys (make-keymap #f #f #f #f #f))
+
+(define-syntax defkeymap
+ (syntax-rules ()
+ ((defkeymap name
+ (state (key ...)) ...)
+ (define name ))))
+
+(defkeymap keys
+ (jump ('w 'up))
+ (left ('a 'left))
+ (right ('d 'right))
+ (attack ('q))
+ (macro ('space))
+ (quit ('escape)))
+
(let/cc exit-main-loop!
(while #t
(set! (sdl2:render-draw-color *renderer*) +background-color+)
@@ -134,10 +158,10 @@
(let ((event (sdl2:make-event)))
(sdl2:poll-event! event)
;; (pp event)
- (when (and (sdl2:keyboard-event? event)
- (eq? (sdl2:event-type event) 'key-down)
- (eq? (sdl2:keyboard-event-sym event) 'escape))
- (exit-main-loop!))))
+ (when (sdl2:keyboard-event? event)
+ (keymap-process-input! event (sdl2:event-type event))
+ ;; (exit-main-loop!)
+ )))
(draw-tilemap *renderer* *level*)
diff --git a/src/inputmap.scm b/src/inputmap.scm
new file mode 100644
index 0000000..5328e35
--- /dev/null
+++ b/src/inputmap.scm
@@ -0,0 +1,14 @@
+(module inputmap
+*
+(import scheme
+ defstruct
+ (prefix sdl2 "sdl2:"))
+
+(define-syntax defkeymap
+ (syntax-rules ()
+ ((defkeymap name
+ (state (key ...)) ...)
+ (define name ))))
+
+
+)
diff --git a/src/tilemap.scm b/src/tilemap.scm
index 3fa9ace..7df0561 100644
--- a/src/tilemap.scm
+++ b/src/tilemap.scm
@@ -15,6 +15,8 @@
(prefix sdl2-image "img:")
(prefix sdl2 "sdl2:"))
+(+ 1 1)
+
(defstruct tileset
tilewidth
tileheight
@@ -24,6 +26,8 @@
image-source
image)
+ (+ 1 1)
+
(defstruct layer
name
width