Advertisement
Mrwill9000

Ticket-0030

Jul 25th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title>The Failures | The Zumbs | Version: Alpha 1.2</title>
  4. <style>
  5. #hero {
  6. background: #adffe7;
  7. height: 5.1%;
  8. position: absolute;
  9. border-radius: 18%;
  10. }
  11. #laser {
  12. background: #ffb4cf;
  13. width: 0.4%;
  14. height: 4%;
  15. position: absolute;
  16. border-radius: 20%;
  17. }
  18. .enemy {
  19. background: #ffb4cf;
  20. width: 2.4%;
  21. height: 4.8%;
  22. position: absolute;
  23. border-radius: 19%;
  24. }
  25. #score {
  26. color: #ffffff;
  27. font-size: 200%;
  28. position: absolute;
  29. left: 2%;
  30. top: 3%;
  31. font-family: fantasy;
  32. }
  33. #gameover {
  34. color: #ffffff;
  35. font-size: 300%;
  36. position: absolute;
  37. visibility: hidden;
  38. font-family: fantasy;
  39. text-align: center;
  40. }
  41. </style>
  42. </head>
  43. <body background = "Grass.png">
  44. <div id="background"></div>
  45. <div id="hero"><a href="Hero.png"></a></div>
  46. <div id="laser"></div>
  47. <div id="score"></div>
  48. <div id="gameover">GAME OVER<br><div style="font-size: 200%">Press ESCAPE to retry.</div></div>
  49. <script>
  50. var El2kill = null;
  51. var LEFT_KEY = 37;
  52. var UP_KEY = 38;
  53. var RIGHT_KEY = 39;
  54. var DOWN_KEY = 40;
  55. var SPACE_KEY = 32;
  56. var HERO_MOVEMENT = 10;
  57.  
  58. var lastLoopRun = 0;
  59. var score = 0;
  60. var iterations = 0;
  61.  
  62. var controller = new Object();
  63. var enemies = new Array();
  64.  
  65. function createSprite(element, x, y, w, h) {
  66. var result = new Object();
  67. result.element = element;
  68. result.x = x;
  69. result.y = y;
  70. result.w = w;
  71. result.h = h;
  72. return result;
  73. }
  74.  
  75. function toggleKey(keyCode, isPressed) {
  76. console.log(keyCode);
  77. if (keyCode == LEFT_KEY || keyCode == 65) {
  78. controller.left = isPressed;
  79. }
  80. if (keyCode == RIGHT_KEY || keyCode == 68) {
  81. controller.right = isPressed;
  82. }
  83. if (keyCode == UP_KEY || keyCode == 87) {
  84. controller.up = isPressed;
  85. }
  86. if (keyCode == DOWN_KEY || keyCode == 83) {
  87. controller.down = isPressed;
  88. }
  89. if (keyCode == SPACE_KEY) {
  90. controller.space = isPressed;
  91. }
  92. if (keyCode == 82) {
  93. locationo.reload();
  94. }
  95. }
  96.  
  97. function intersects(a, b) {
  98. 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;
  99. }
  100.  
  101. function ensureBounds(sprite, ignoreY) {
  102. if (sprite.x < 0) {
  103. sprite.x = 0;
  104. }
  105. if (!ignoreY && sprite.y < 0) {
  106. sprite.y = 0;
  107. }
  108. if (sprite.x + sprite.w > 1410) {
  109. sprite.x = 1410 - sprite.w;
  110. }
  111. if (!ignoreY && sprite.y + sprite.h > 741) {
  112. sprite.y = 741 - sprite.h;
  113. }
  114. }
  115.  
  116. function setPosition(sprite) {
  117. var e = document.getElementById(sprite.element);
  118. e.style.left = sprite.x + 'px';
  119. e.style.top = sprite.y + 'px';
  120. }
  121.  
  122. function handleControls() {
  123. if (controller.up) {
  124. hero.y -= HERO_MOVEMENT;
  125. }
  126. if (controller.down) {
  127. hero.y += HERO_MOVEMENT;
  128. }
  129. if (controller.left) {
  130. hero.x -= HERO_MOVEMENT;
  131. }
  132. if (controller.right) {
  133. hero.x += HERO_MOVEMENT;
  134. }
  135. if (controller.space && laser.y <= -120) {
  136. laser.x = hero.x + 17;
  137. laser.y = hero.y - laser.h + 18;
  138. }
  139.  
  140. ensureBounds(hero);
  141. }
  142. function killEnemy(element){
  143. element.style.visibility = 'hidden';
  144. element.parentNode.removeChild(element);
  145. }
  146. function checkCollisions() {
  147. for (var i = 0; i < enemies.length; i++) {
  148. if (intersects(laser, enemies[i])) {
  149. var element = document.getElementById(enemies[i].element);
  150. element.style.background ='#e54e3b';
  151.  
  152. setTimeout(function() {killEnemy(element);}, 400);
  153.  
  154. enemies.splice(i, 1);
  155. i--;
  156. laser.y = -laser.h;
  157. score += Math.floor(Math.random() * 3)+1;
  158. document.getElementById("score").style.color = "#a6e06b";
  159. } else if (intersects(hero, enemies[i])) {
  160. gameOver();
  161. } else if (enemies[i].y + enemies[i].h >= 761) {
  162. var element = document.getElementById(enemies[i].element);
  163. element.style.visibility = 'hidden';
  164. element.parentNode.removeChild(element);
  165. enemies.splice(i, 1);
  166. i--;
  167. if (score > 0) {score -= Math.floor(Math.random() * 2)+1};
  168. }
  169. }
  170. }
  171.  
  172. function removeHero(element){
  173. element.style.visibility = 'hidden';
  174. }
  175. function relGame() {
  176. location.reload();
  177. }
  178. function gameOver() {
  179. var element = document.getElementById(hero.element);
  180. element.style.background = 'black';
  181. setTimeout(function() {removeHero(element);}, 700);
  182. element = document.getElementById(laser.element);
  183. element.style.visibility = 'hidden';
  184. element = document.getElementById('gameover');
  185. element.style.visibility = 'visible';
  186. }
  187. function showSprites() {
  188. setPosition(hero);
  189. setPosition(laser);
  190. for (var i = 0; i < enemies.length; i++) {
  191. setPosition(enemies[i]);
  192. }
  193. var scoreElement = document.getElementById('score');
  194. scoreElement.innerHTML = 'Score: ' + score;
  195. }
  196.  
  197. function updatePositions() {
  198. for (var i = 0; i < enemies.length; i++) {
  199. enemies[i].y += 1.5;
  200. enemies[i].x += Math.floor(Math.random() * 2) - 0.5;
  201. ensureBounds(enemies[i], true);
  202. }
  203. laser.y -= 60;
  204. }
  205.  
  206. function addEnemy() {
  207. var interval = 50;
  208. if (iterations > 5500) {
  209. interval = 5;
  210. } else if (iterations > 5000) {
  211. interval = 15;
  212. } else if (iterations > 3000) {
  213. interval = 25;
  214. } else if (iterations > 2000) {
  215. interval = 45;
  216. } else if (iterations > 1000) {
  217. interval = 60;
  218. }
  219.  
  220. if (getRandom(interval) == 0) {
  221. var elementName = 'enemy' + getRandom(10000000);
  222. var enemy = createSprite(elementName, getRandom(1239), -40, 35, 35);
  223. var element = document.createElement('div');
  224. element.id = enemy.element;
  225. element.className = 'enemy';
  226. document.children[0].appendChild(element);
  227.  
  228. enemies[enemies.length] = enemy;
  229. }
  230. }
  231.  
  232. function getRandom(maxSize) {
  233. return parseInt(Math.random() * maxSize);
  234. }
  235.  
  236. function loop() {
  237. if (new Date().getTime() - lastLoopRun > 40) {
  238. updatePositions();
  239. handleControls();
  240. checkCollisions();
  241.  
  242. addEnemy();
  243.  
  244. showSprites();
  245.  
  246. lastLoopRun = new Date().getTime();
  247. iterations++;
  248. }
  249. setTimeout('loop();', 2);
  250. }
  251.  
  252. document.onkeydown = function(evt) {
  253. toggleKey(evt.keyCode, true);
  254. };
  255.  
  256. document.onkeyup = function(evt) {
  257. toggleKey(evt.keyCode, false);
  258. };
  259. var hero = createSprite('hero', 665, 600, 20, 20);
  260. var laser = createSprite('laser', 0, -120, 2, 50);
  261.  
  262. loop();
  263.  
  264. </script>
  265. </body>
  266. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement