Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.14 KB | None | 0 0
  1. 'use strict';
  2.  
  3. (function () {
  4. let piirtoalusta;
  5. let konteksti;
  6. let ajastin;
  7. let ukkeli;
  8. let ukkelikuvat;
  9. let nappaimisto;
  10. let vastustajat=[];
  11. let vastustajakuvat;
  12. let pisteet;
  13. let esteet = [];
  14. let esineet = [];
  15. document.addEventListener('DOMContentLoaded', alusta);
  16. function alusta() {
  17. pisteet=document.getElementById('pisteet');
  18. piirtoalusta = document.getElementById('piirtoalusta');
  19. konteksti = piirtoalusta.getContext('2d');
  20. alustakuvatiedot();
  21.  
  22. lataaKaikkiKuvat([ukkelikuvat.nimi, vastustajakuvat.nimi, 'kolikko', 'kukka'], kuvavarasto)
  23. .then(() => aloitaPeli())
  24. .catch(viesti => virheIlmoitus(viesti));
  25. }
  26. function aloitaPeli() {
  27. alustaNappaimisto();
  28. alustaTaso();
  29. window.addEventListener('keyup', function (e) {
  30. suoritaToiminto(nappaimisto.getToiminto(e.keyCode));
  31. });
  32. ajastin = setInterval(pelisilmukka, 80);
  33. piirraPeli();
  34. }
  35. function pelisilmukka() {
  36. paivitaPaikat();
  37. tarkastaTormaykset();
  38. paivitaPisteet();
  39. piirraPeli();
  40. }
  41.  
  42. function paivitaPaikat() {
  43. ukkeli.siirry();
  44. for(let vastustaja of vastustajat) {
  45. vastustaja.siirry();
  46. }
  47. }
  48. function tarkastaTormaykset() {
  49. if (tuliEsteTormays(ukkeli)) {
  50. ukkeli.peruuta();
  51. }
  52. for(let vastustaja of vastustajat) {
  53. if(tuliEsteTormays(vastustaja)) {
  54. vastustaja.peruuta();
  55. }
  56. }
  57. for(let vastustaja of vastustajat) {
  58. if(vastustaja.tormaysLaatikko.onTormays(ukkeli.tormaysLaatikko)){
  59. clearInterval(ajastin);
  60. return;
  61. }
  62. }
  63. tarkastaEsineTormays(ukkeli);
  64. }
  65. function virheIlmoitus(viesti) {
  66. console.log(viesti);
  67. }
  68. function tuliEsteTormays(ukkeli) {
  69. for (let este of esteet) {
  70. if (este.onTormays(ukkeli.tormaysLaatikko)) {
  71. return true;
  72. }
  73. }
  74. return false;
  75. }
  76. function tarkastaEsineTormays(ukkeli) {
  77. for (let i = 0; i < esineet.length; i++) {
  78. if (esineet[i].onTormays(ukkeli.tormaysLaatikko)) {
  79. ukkeli.lisaaReppuun(esineet.splice(i, 1)[0]);
  80. return;
  81. }
  82. }
  83. }
  84. function suoritaToiminto(toiminto) {
  85. if (toiminto === TOIMINTO.SEIS) {
  86. ukkeli.liikkeessa = !ukkeli.liikkeessa;
  87. } else {
  88. switch (toiminto) {
  89. case TOIMINTO.ALAS:
  90. ukkeli.suunta = SUUNTA.ALAS;
  91. break;
  92. case TOIMINTO.YLOS:
  93. ukkeli.suunta = SUUNTA.YLOS;
  94. break;
  95. case TOIMINTO.VASEN:
  96. ukkeli.suunta = SUUNTA.VASEN;
  97. break;
  98. case TOIMINTO.OIKEA:
  99. ukkeli.suunta = SUUNTA.OIKEA;
  100. break;
  101. default: return; // muut toiminnot
  102. }
  103. ukkeli.liikkeessa = true;
  104. }
  105.  
  106. ukkeli.siirry();
  107. if (tuliEsteTormays(ukkeli)) {
  108. ukkeli.peruuta();
  109. }
  110. tarkastaEsineTormays(ukkeli);
  111. }
  112. function paivitaPisteet() {
  113. pisteet.textContent=ukkeli.pisteet;
  114. }
  115. function piirraPeli() {
  116. konteksti.clearRect(0, 0, piirtoalusta.width, piirtoalusta.height);
  117. for (let este of esteet) {
  118. este.piirra(konteksti);
  119. }
  120. for (let esine of esineet) {
  121. esine.piirra(konteksti);
  122. }
  123. for(let vastustaja of vastustajat) {
  124. vastustaja.piirra(konteksti);
  125. }
  126. ukkeli.piirra(konteksti);
  127. }
  128. function alustaNappaimisto() {
  129. nappaimisto = new Nappaimisto();
  130. nappaimisto.lisaaNappain(NAPPAIN.NUOLI_ALAS, TOIMINTO.ALAS);
  131. nappaimisto.lisaaNappain(NAPPAIN.NUOLI_YLOS, TOIMINTO.YLOS);
  132. nappaimisto.lisaaNappain(NAPPAIN.NUOLI_VASEN, TOIMINTO.VASEN);
  133. nappaimisto.lisaaNappain(NAPPAIN.NUOLI_OIKEA, TOIMINTO.OIKEA);
  134. nappaimisto.lisaaNappain(NAPPAIN.VALILYONTI, TOIMINTO.SEIS);
  135. }
  136. function alustaTaso() {
  137. ukkelikuvat.kuva = kuvavarasto.get(ukkelikuvat.nimi);
  138. ukkeli = new Ukkeli(ukkelikuvat, 5, 5, SUUNTA.ALAS, 10);
  139.  
  140. vastustajakuvat.kuva = kuvavarasto.get(vastustajakuvat.nimi);
  141. vastustajat.push(new vastustaja(vastustajakuvat, 350, 300, SUUNTA.ALAS, 10));
  142. vastustajat.push(new vastustaja(vastustajakuvat, 200, 300, SUUNTA.YLOS, 15));
  143.  
  144. esineet.push(new Esine(100, 205, 10, kuvavarasto.get('kolikko')));
  145. esineet.push(new Esine(305, 205, 50, kuvavarasto.get('kukka')));
  146. esineet.push(new Esine(155, 10, 5, kuvavarasto.get('kolikko')));
  147.  
  148. esteet.push(new Este(0, -5, piirtoalusta.width, 10, 'green'));
  149. esteet.push(new Este(0, piirtoalusta.height - 5, piirtoalusta.width, 10, 'green'));
  150. esteet.push(new Este(-5, 0, 10, piirtoalusta.height, 'orange'));
  151. esteet.push(new Este(piirtoalusta.width - 5, 0, 10, piirtoalusta.height, 'orange'));
  152. esteet.push(new Este(100, 100, 100, 20));
  153. esteet.push(new Este(100, 300, 20, 20, 'blue'));
  154. }
  155. function alustakuvatiedot() {
  156. ukkelikuvat = {
  157. nimi: 'pelaaja40',
  158. kuva: null,
  159. ALAS: { x: 0, y: 0, leveys: 40, korkeus: 40, kuvienLkm: 3 },
  160. YLOS: { x: 0, y: 40, leveys: 40, korkeus: 40, kuvienLkm: 3 },
  161. VASEN: { x: 0, y: 80, leveys: 40, korkeus: 40, kuvienLkm: 3 },
  162. OIKEA: { x: 0, y: 120, leveys: 40, korkeus: 40, kuvienLkm: 3 }
  163. };
  164. vastustajakuvat = {
  165. nimi: 'pelaaja40',
  166. kuva: null,
  167. ALAS: { x: 0, y: 0, leveys: 40, korkeus: 40, kuvienLkm: 3 },
  168. YLOS: { x: 0, y: 40, leveys: 40, korkeus: 40, kuvienLkm: 3 },
  169. VASEN: { x: 0, y: 80, leveys: 40, korkeus: 40, kuvienLkm: 3 },
  170. OIKEA: { x: 0, y: 120, leveys: 40, korkeus: 40, kuvienLkm: 3 }
  171. }
  172. }
  173.  
  174. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement