JSFiddle - React, Tailwind, and code Playground
by eddiemonge
JavaScript
var Mars = (function(undefined) {
var _renderer,
_keyboardState = {
a: false,
d: false,
s: false,
w: false
},
_updateKeyboardState = function(e, keyboardState, make) {
var key = String.fromCharCode(e.which || e.keyCode).toLowerCase();
if (keyboardState[key] !== undefined) {
keyboardState[key] = make;
}
};
// Keyboard handler based on code supplied by #iaincarsberg of
// irc.freenode.net, #bbg.
var _addKeyEventListener = function() {
$(document).keydown(function(e) {
_updateKeyboardState(e, _keyboardState, true);
}).keyup(function(e) {
_updateKeyboardState(e, _keyboardState, false);
});
};
var _moveBackward = function() {
var camera = _renderer.getCamera(),
x = camera.x,
z = camera.z,
y = _renderer.getHeight(x, z) + 100,
angleInRadians = Math.round(camera.angle) * Math.PI / 180;
x += Math.round(Math.cos(angleInRadians) * -2);
z += Math.round(Math.sin(angleInRadians) * -2);
if (x >= 1024 && x < 2048) {
camera.x = x;
}
if (z >= 1024 && z < 2048) {
camera.z = z;
}
if (y < 200) {
y = 200;
} else if (y > 300) {
y = 300;
}
camera.y = y;
_renderer.setCamera({ x: camera.x, y: camera.y, z: camera.z });
};
var _moveForward = function() {
var camera = _renderer.getCamera(),
x = camera.x,
z = camera.z,
y = _renderer.getHeight(x, z) + 100,
angleInRadians = Math.round(camera.angle) * Math.PI / 180;
x += Math.round(Math.cos(angleInRadians) * 4);
z += Math.round(Math.sin(angleInRadians) * 4);
if (x >= 1024 && x < 2048) {
camera.x = x;
}
if (z >= 1024 && z < 2048)...