From 18e1e4f9a29d6b13454818ffbb520b15e4fb15f6 Mon Sep 17 00:00:00 2001 From: SouthFox Date: Mon, 20 May 2024 23:05:28 +0800 Subject: [PATCH] [feat] moving sprite --- game.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/game.scm b/game.scm index 66544bb..9fa75f6 100644 --- a/game.scm +++ b/game.scm @@ -18,12 +18,15 @@ (define canvas (get-element-by-id "canvas")) (define context (get-context canvas "2d")) +(define *element-x* (/ game-width 2.0)) + ;; Draw (define (draw prev-time) + (clear-rect context 0.0 0.0 game-width game-height) (set-fill-color! context "#140c1c") (set-text-align! context "center") (set-font! context "bold 24px monospace") - (fill-text context "Hello, World! :)" (/ game-width 2.0) (/ game-height 2.0)) + (fill-text context "Hello, World! :)" *element-x* (/ game-height 2.0)) (request-animation-frame draw-callback)) (define draw-callback (procedure->external draw)) @@ -34,3 +37,20 @@ (dprint "game-height" game-height) (console-log canvas) + +;; Input +(define key:left "ArrowLeft") +(define key:right "ArrowRight") + +(define (on-key-down event) + (let ((key (keyboard-event-code event))) + (cond + ((string=? key key:left) + (dprint "key:" key) + (set! *element-x* (- *element-x* 10))) + ((string=? key key:right) + (dprint "key:" key) + (set! *element-x* (+ *element-x* 10)))))) + +(add-event-listener! (current-document) "keydown" + (procedure->external on-key-down))