Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <title>The Failures | The Zumbs | Version: Alpha 1.2</title>
- <style>
- #hero {
- background: #adffe7;
- height: 5.1%;
- position: absolute;
- border-radius: 18%;
- }
- #laser {
- background: #ffb4cf;
- width: 0.4%;
- height: 4%;
- position: absolute;
- border-radius: 20%;
- }
- .enemy {
- background: #ffb4cf;
- width: 2.4%;
- height: 4.8%;
- position: absolute;
- border-radius: 19%;
- }
- #score {
- color: #ffffff;
- font-size: 200%;
- position: absolute;
- left: 2%;
- top: 3%;
- font-family: fantasy;
- }
- #gameover {
- color: #ffffff;
- font-size: 300%;
- position: absolute;
- visibility: hidden;
- font-family: fantasy;
- text-align: center;
- }
- </style>
- </head>
- <body background = "Grass.png">
- <div id="background"></div>
- <div id="hero"><a href="Hero.png"></a></div>
- <div id="laser"></div>
- <div id="score"></div>
- <div id="gameover">GAME OVER<br><div style="font-size: 200%">Press ESCAPE to retry.</div></div>
- <script>
- var El2kill = null;
- var LEFT_KEY = 37;
- var UP_KEY = 38;
- var RIGHT_KEY = 39;
- var DOWN_KEY = 40;
- var SPACE_KEY = 32;
- var HERO_MOVEMENT = 10;
- var lastLoopRun = 0;
- var score = 0;
- var iterations = 0;
- var controller = new Object();
- var enemies = new Array();
- function createSprite(element, x, y, w, h) {
- var result = new Object();
- result.element = element;
- result.x = x;
- result.y = y;
- result.w = w;
- result.h = h;
- return result;
- }
- function toggleKey(keyCode, isPressed) {
- console.log(keyCode);
- if (keyCode == LEFT_KEY || keyCode == 65) {
- controller.left = isPressed;
- }
- if (keyCode == RIGHT_KEY || keyCode == 68) {
- controller.right = isPressed;
- }
- if (keyCode == UP_KEY || keyCode == 87) {
- controller.up = isPressed;
- }
- if (keyCode == DOWN_KEY || keyCode == 83) {
- controller.down = isPressed;
- }
- if (keyCode == SPACE_KEY) {
- controller.space = isPressed;
- }
- if (keyCode == 82) {
- locationo.reload();
- }
- }
- function intersects(a, b) {
- return a.x < b.x + b.w && a.x + a.w > b.x && a.y < b.y + b.h && a.y + a.h > b.y;
- }
- function ensureBounds(sprite, ignoreY) {
- if (sprite.x < 0) {
- sprite.x = 0;
- }
- if (!ignoreY && sprite.y < 0) {
- sprite.y = 0;
- }
- if (sprite.x + sprite.w > 1410) {
- sprite.x = 1410 - sprite.w;
- }
- if (!ignoreY && sprite.y + sprite.h > 741) {
- sprite.y = 741 - sprite.h;
- }
- }
- function setPosition(sprite) {
- var e = document.getElementById(sprite.element);
- e.style.left = sprite.x + 'px';
- e.style.top = sprite.y + 'px';
- }
- function handleControls() {
- if (controller.up) {
- hero.y -= HERO_MOVEMENT;
- }
- if (controller.down) {
- hero.y += HERO_MOVEMENT;
- }
- if (controller.left) {
- hero.x -= HERO_MOVEMENT;
- }
- if (controller.right) {
- hero.x += HERO_MOVEMENT;
- }
- if (controller.space && laser.y <= -120) {
- laser.x = hero.x + 17;
- laser.y = hero.y - laser.h + 18;
- }
- ensureBounds(hero);
- }
- function killEnemy(element){
- element.style.visibility = 'hidden';
- element.parentNode.removeChild(element);
- }
- function checkCollisions() {
- for (var i = 0; i < enemies.length; i++) {
- if (intersects(laser, enemies[i])) {
- var element = document.getElementById(enemies[i].element);
- element.style.background ='#e54e3b';
- setTimeout(function() {killEnemy(element);}, 400);
- enemies.splice(i, 1);
- i--;
- laser.y = -laser.h;
- score += Math.floor(Math.random() * 3)+1;
- document.getElementById("score").style.color = "#a6e06b";
- } else if (intersects(hero, enemies[i])) {
- gameOver();
- } else if (enemies[i].y + enemies[i].h >= 761) {
- var element = document.getElementById(enemies[i].element);
- element.style.visibility = 'hidden';
- element.parentNode.removeChild(element);
- enemies.splice(i, 1);
- i--;
- if (score > 0) {score -= Math.floor(Math.random() * 2)+1};
- }
- }
- }
- function removeHero(element){
- element.style.visibility = 'hidden';
- }
- function relGame() {
- location.reload();
- }
- function gameOver() {
- var element = document.getElementById(hero.element);
- element.style.background = 'black';
- setTimeout(function() {removeHero(element);}, 700);
- element = document.getElementById(laser.element);
- element.style.visibility = 'hidden';
- element = document.getElementById('gameover');
- element.style.visibility = 'visible';
- }
- function showSprites() {
- setPosition(hero);
- setPosition(laser);
- for (var i = 0; i < enemies.length; i++) {
- setPosition(enemies[i]);
- }
- var scoreElement = document.getElementById('score');
- scoreElement.innerHTML = 'Score: ' + score;
- }
- function updatePositions() {
- for (var i = 0; i < enemies.length; i++) {
- enemies[i].y += 1.5;
- enemies[i].x += Math.floor(Math.random() * 2) - 0.5;
- ensureBounds(enemies[i], true);
- }
- laser.y -= 60;
- }
- function addEnemy() {
- var interval = 50;
- if (iterations > 5500) {
- interval = 5;
- } else if (iterations > 5000) {
- interval = 15;
- } else if (iterations > 3000) {
- interval = 25;
- } else if (iterations > 2000) {
- interval = 45;
- } else if (iterations > 1000) {
- interval = 60;
- }
- if (getRandom(interval) == 0) {
- var elementName = 'enemy' + getRandom(10000000);
- var enemy = createSprite(elementName, getRandom(1239), -40, 35, 35);
- var element = document.createElement('div');
- element.id = enemy.element;
- element.className = 'enemy';
- document.children[0].appendChild(element);
- enemies[enemies.length] = enemy;
- }
- }
- function getRandom(maxSize) {
- return parseInt(Math.random() * maxSize);
- }
- function loop() {
- if (new Date().getTime() - lastLoopRun > 40) {
- updatePositions();
- handleControls();
- checkCollisions();
- addEnemy();
- showSprites();
- lastLoopRun = new Date().getTime();
- iterations++;
- }
- setTimeout('loop();', 2);
- }
- document.onkeydown = function(evt) {
- toggleKey(evt.keyCode, true);
- };
- document.onkeyup = function(evt) {
- toggleKey(evt.keyCode, false);
- };
- var hero = createSprite('hero', 665, 600, 20, 20);
- var laser = createSprite('laser', 0, -120, 2, 50);
- loop();
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement