Simple JavaScript Game
This example shows how a simple game can be written in JavaScript.
tera-ship.js
var key =
0;
var keyup =
1;
var keydown =
2;
var keythrst =
4;
function spacecraft(e) {
function P_motionX(v) {
if ((key & keythrst) && (Math.abs(
this.speed) < maxSpeed))
this.speed += (
2 *
this.dir);
return v +
this.speed;
}
function P_motionY(v) {
if (key & keyup)
v -=
5;
else if (key & keydown)
v +=
5;
return ++v;
}
this.motionX = P_motionX;
this.motionY = P_motionY;
this.alt =
100;
this.fuel = -
1;
this.xpos = gameWdth/
2;
this.retain = true;
this.visible = true;
this.htmlElem = e ||
null;
this.type =
"ship";
this.setImage(shipF);
}
spacecraft.prototype = new actor();
function keyHandler(event) {
if (!event) event = window.event;
var ret = false;
switch (event.keyCode) {
case 13:
with (mile[nxtmis]) {
dir = ship.dir;
alt = ship.alt;
xpos = ship.xpos + (
2 * ship.width * dir);
speed = ship.speed +
50 * dir;
fuel =
10;
crashed = false;
visible = true;
if (dir ==
1)
setImage(missR);
else
setImage(missL);
}
nxtmis = ++nxtmis % mile.length;
break;
case 32:
ship.dir *= -
1;
break;
case 38:
case 65:
key |= keyup;
break;
case 40:
case 90:
key |= keydown;
break;
case 222:
key |= keythrst;
break;
default:
ret = true;
}
return ret;
}
Key codes can be found at:
http://www.andrew-scott.co.uk/tables/keys.shtml
function keyCancel(event) {
if (!event) event = window.event;
var ret = false;
switch (event.keyCode) {
case 38:
case 65:
key ^= keyup;
break;
case 40:
case 90:
key ^= keydown;
break;
case 222:
key ^= keythrst;
break;
default:
ret = true;
}
return ret;
}
© Andrew Scott 2006 -
2025,
All Rights Reserved