@@ 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>
@@ 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")))