JavaScript
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
//The Variables
var tileSize = 32;
var key = 0;
var newX = 0;
var newY = 0;
var xRayAngles = [];
var baddies = [];
var angle = 0;
var length = 0;
var height = 0;
var bob = 10;
var bi = 1;
var overheat = 0;
var ammo = 6;
var bx = 0;
var by = 0;
var playing = false;
var reload = 0;
var zClip = 0;
var frame = 0;
var health = 100;
var badi = 0;
var moveStep = 0;
var strafeStep = 0;
var badX = 0;
var badY = 0;
var baddiesSeen = [];
var wave = 1;
var dispWave = 1;
var kyle = false
var wallImage = "https://s24.postimg.org/9l26me0id/new_Wall.png";
//"https://s29.postimg.org/eg2pzme4n/Wall.png";
var gunImage = "https://s27.postimg.org/r9k05mg3n/arm.png";
var gunShot = "https://s27.postimg.org/qz7tacgn7/Gun_Arm.png";
var baddieImage = "https://s29.postimg.org/u9mvuz47r/baza.png";
var mainScreenImage = "https://s24.postimg.org/k33o4s6rp/Zombie_Title_Screen.jpg";
var gunSound = new Audio("https://docs.google.com/uc?export=download&id=0B9uzykIixHuYeU5Ub1VBQkRGTDQ");
//calculate as 160/Tan(1/2 of viewing angle in radians) ---- assume viewing angle of 60 degrees
var distanceToPlane = 400 / Math.abs(Math.tan(30 * Math.PI / 180)); // 277;
for (var x = 0; x < 800; x += 2) {
var xAng = Math.atan((x - 400) / distanceToPlane);
xRayAngles.push(xAng);
}
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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1],
...