Now advances through levels.
2 files changed, 25 insertions(+), 19 deletions(-)

M build/index.html
M qc.rkt
M build/index.html +4 -4
@@ 1,13 1,13 @@ 
 <!DOCTYPE html>
 <html lang="en">
   <head> <meta charset="utf-8">
-  <title>Qube*Cat - 0.9.0 </title>
+  <title>Qube*Cat - 0.9.1 </title>
   <style>@font-face { font-family: HUD; src: url('f/ShareTechMono-Regular.ttf'); }</style>
  </head>
  <body style="margin: 0;">
     <div style="display: flex; justify-content: center;">
     <canvas id="the-canvas" width="640" height="480" tabindex="1"/>
-    <script>var VERSION = "0.9.0";</script>
+    <script>var VERSION = "0.9.1";</script>
     <script>"use strict";
 var APP={name:"Qube*Cat",nickname:"qube-cat",screen:{width:640,height:480},fps:30};
 function array_p(x){"( x -- f) Is x an Array?";return (x.constructor===Array);};

          
@@ 50,8 50,8 @@ function animate(){"( --) Handle animati
 var d2face={sw:0,se:1,ne:3,nw:2};
 function dir2loc(start,d){"( start d -> location) Figure out new location from start and direction.";return (((run) => {return ((("sw"===d)===false)?((("se"===d)===false)?((("ne"===d)===false)?((("nw"===d)===false)?undefined:((() => {return (start-run-(-1));})())):((() => {return (start-run-1);})())):((() => {return (start+run+1);})())):((() => {return (start+run+-1);})()));})(Game.level.run));};
 function jumping(mob,d){"( mob d --) Set mob up for jump.";((mob)["state"]="JUMP");((mob)["x"]=0.0);((mob)["target"]=(dir2loc(mob.i,d)));((mob)["face"]=d2face[d]);return (frame_set(mob,0));};
-function game_loop(timestamp){(((cx) => {return (((fps_limit) => {return (((delta) => {return (((seconds_passed) => {return (((fps) => {return ((() => {return (((delta>=fps_limit)===false)?undefined:((() => {((Game)["log"]["fps"]=fps);((Game)["timestamp_old"]=timestamp);(draw(APP.screen,cx));return (animate());})()));})());})(((Math.round)((1.0/seconds_passed)))));})((delta/1000)));})((timestamp-Game["timestamp_old"])));})((1000/APP.fps)));})(Game.cx));return ((window["requestAnimationFrame"])(game_loop));};
-((window["addEventListener"])("keyup",((e) => {return (((idle) => {return (((idle&&("z"===e.key))===false)?(((idle&&("x"===e.key))===false)?(((idle&&("a"===e.key))===false)?(((idle&&("s"===e.key))===false)?undefined:((() => {return (jumping(player,"nw"));})())):((() => {return (jumping(player,"ne"));})())):((() => {return (jumping(player,"se"));})())):((() => {return (jumping(player,"sw"));})()));})((("IDLE"===player.state)||("IDL2"===player.state)||("SLEP"===player.state))));})));
+function game_loop(timestamp){(((cx) => {return (((fps_limit) => {return (((delta) => {return (((seconds_passed) => {return (((fps) => {return ((() => {return (((delta>=fps_limit)===false)?undefined:((() => {((Game)["log"]["fps"]=fps);((Game)["timestamp_old"]=timestamp);((Game)["level"]["tick"]=(Game.level.tick+1));(draw(APP.screen,cx));return (animate());})()));})());})(((Math.round)((1.0/seconds_passed)))));})((delta/1000)));})((timestamp-Game["timestamp_old"])));})((1000/APP.fps)));})(Game.cx));return ((window["requestAnimationFrame"])(game_loop));};
+((window["addEventListener"])("keyup",((e) => {((console.log)(e.key));return (((idle) => {return ((("play"===Game.level.state)===false)?(((("win"===Game.level.state)||("wait"===Game.level.state))===false)?((("lose"===Game.level.state)===false)?undefined:((() => {return (((("Enter"===e.key)||(" "===e.key))===false)?undefined:((() => {return (level_set(Game.nlevel));})()));})())):((() => {return (((("Enter"===e.key)||(" "===e.key))===false)?undefined:((() => {return (level_set((Game.nlevel+1)));})()));})())):((() => {return (((idle&&("z"===e.key))===false)?(((idle&&("x"===e.key))===false)?(((idle&&("a"===e.key))===false)?(((idle&&("s"===e.key))===false)?undefined:((() => {return (jumping(player,"nw"));})())):((() => {return (jumping(player,"ne"));})())):((() => {return (jumping(player,"se"));})())):((() => {return (jumping(player,"sw"));})()));})()));})((("IDLE"===player.state)||("IDL2"===player.state)||("SLEP"===player.state))));})));
 function init(){(level_set(0));(((canvas) => {return ((() => {return ((Game)["cx"]=((canvas["getContext"])("2d")));})());})(((document["getElementById"])("the-canvas"))));(play("king"));return ((window["requestAnimationFrame"])(game_loop));};
 (init());
 </script>

          
M qc.rkt +21 -15
@@ 485,14 485,8 @@ 
          (:= Game.log.fps fps)
          (:= Game.timestamp-old timestamp)
 
+         (:= Game.level.tick (+ Game.level.tick 1))
          (draw APP.screen cx)
-              
-              ;; (:= cx "fillStyle" "rgba(255, 255, 255, 0.1)")
-              ;; (cx.fillRect  4 4  60 20)
-              ;; (:= cx "font" "20px Arial")
-              ;; (:= cx "fillStyle" "black")
-              ;; (cx.fillText (+ "" fps " fps") 8 22)
-
          (animate)))
 
      (window.requestAnimationFrame game-loop)

          
@@ 503,20 497,32 @@ 
    
    (window.addEventListener
     "keyup" (λ (e)
+
+              (console.log e.key)
               (let ([idle (or (= 'IDLE player.state)
                               (= 'IDL2 player.state)
-                              (= 'SLEP player.state))])
-              (cond [(and idle (= "z" e.key)) (jumping player 'sw)]
-                    [(and idle (= "x" e.key)) (jumping player 'se)]
-                    [(and idle (= "a" e.key)) (jumping player 'ne)]
-                    [(and idle (= "s" e.key)) (jumping player 'nw)]
-                    ))
-              ))
+                              (= 'SLEP player.state))]
+                    )
+
+                (cond [(= 'play Game.level.state)
+                       (cond [(and idle (= "z" e.key)) (jumping player 'sw)]
+                             [(and idle (= "x" e.key)) (jumping player 'se)]
+                             [(and idle (= "a" e.key)) (jumping player 'ne)]
+                             [(and idle (= "s" e.key)) (jumping player 'nw)]
+                             )]
+                      [(or (= 'win Game.level.state) (= 'wait Game.level.state))
+                       (when (or (= "Enter" e.key) (= " " e.key))
+                         (level-set (+ Game.nlevel 1)))]
+                      [(= 'lose Game.level.state)
+                       (when (or (= "Enter" e.key) (= " " e.key))
+                         (level-set Game.nlevel))]
+                      )
+              )))
    
    ; Start the Show...
      
    (define (init)
-     (level-set 1)
+     (level-set 0)
      
      (let* ((canvas (document.getElementById "the-canvas")))
        (:= Game.cx (canvas.getContext "2d")))