JavaScript
var showOverlay = true;
var debugMode = false;
var pausedMode = false;
var lastGameCycleTime = 0;
var gameCycleDelay = 1000 / 30;
var CycleDelay;
var map = [
[
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1]
],
[
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 1, 0, 1, 1, 0, 1],
[1, 0, 0, 1, 1, 1, 0, 1],
[1, 0, 1, 1, 1, 0, 0, 1],
[1, 0, 1, 1, 0, 1, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1]
],
[
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 1],
[1, 0, 0, 1, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1]
]
];
var player = {
x: 0,
y: 0,
z: 0,
dir: 0,
speed: 0.18,
verMove: 0,
horMove: 0,
verLook: 0,
horLook: 0,
inv: [2, 4, 3, 5, 0, 0, 0, 0, 0, 0],
invAm: [4, 5, 16, 2, 0, 0, 0, 0, 0, 0],
invPos: 0
};
var blocks = [
["none", 256, 256],
["Grass-Top", 0, 0],
["Stone", 16, 0],
["Dirt", 32, 0],
["Grass-Side", 48, 0],
["Plank", 64, 0],
];
$ = function(tag) {
return document.querySelector(tag)
};
function log(msg) {
console.log(msg);
}
function gameCycle() {
var now = new Date().getTime();
var timeDelta = now - lastGameCycleTime;
cycleDelay = gameCycleDelay;
if (timeDelta > cycleDelay) {
cycleDelay = Math.max(1, cycleDelay - (timeDelta - cycleDelay))
}
invBar();
overlay();
bindKeys();
lastGameCycleTime = now;
setTimeout(gameCycle, cycleDelay);
}
var invBarDisp;
function invBar() {
invBarDisp =
'<b>Space Bar to Show/Hide the Overlay</b><br>' +
'<b>Press \'B\' to "place" a block</b><br>' +
'<div class="itemBar"><ul>';
var i = 0;
while (i < player.invPos) {
invBarDisp += '<li id="item"...