Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- (function () {
- let piirtoalusta;
- let konteksti;
- let ajastin;
- let ukkeli;
- let ukkelikuvat;
- let nappaimisto;
- let vastustajat=[];
- let vastustajakuvat;
- let pisteet;
- let esteet = [];
- let esineet = [];
- document.addEventListener('DOMContentLoaded', alusta);
- function alusta() {
- pisteet=document.getElementById('pisteet');
- piirtoalusta = document.getElementById('piirtoalusta');
- konteksti = piirtoalusta.getContext('2d');
- alustakuvatiedot();
- lataaKaikkiKuvat([ukkelikuvat.nimi, vastustajakuvat.nimi, 'kolikko', 'kukka'], kuvavarasto)
- .then(() => aloitaPeli())
- .catch(viesti => virheIlmoitus(viesti));
- }
- function aloitaPeli() {
- alustaNappaimisto();
- alustaTaso();
- window.addEventListener('keyup', function (e) {
- suoritaToiminto(nappaimisto.getToiminto(e.keyCode));
- });
- ajastin = setInterval(pelisilmukka, 80);
- piirraPeli();
- }
- function pelisilmukka() {
- paivitaPaikat();
- tarkastaTormaykset();
- paivitaPisteet();
- piirraPeli();
- }
- function paivitaPaikat() {
- ukkeli.siirry();
- for(let vastustaja of vastustajat) {
- vastustaja.siirry();
- }
- }
- function tarkastaTormaykset() {
- if (tuliEsteTormays(ukkeli)) {
- ukkeli.peruuta();
- }
- for(let vastustaja of vastustajat) {
- if(tuliEsteTormays(vastustaja)) {
- vastustaja.peruuta();
- }
- }
- for(let vastustaja of vastustajat) {
- if(vastustaja.tormaysLaatikko.onTormays(ukkeli.tormaysLaatikko)){
- clearInterval(ajastin);
- return;
- }
- }
- tarkastaEsineTormays(ukkeli);
- }
- function virheIlmoitus(viesti) {
- console.log(viesti);
- }
- function tuliEsteTormays(ukkeli) {
- for (let este of esteet) {
- if (este.onTormays(ukkeli.tormaysLaatikko)) {
- return true;
- }
- }
- return false;
- }
- function tarkastaEsineTormays(ukkeli) {
- for (let i = 0; i < esineet.length; i++) {
- if (esineet[i].onTormays(ukkeli.tormaysLaatikko)) {
- ukkeli.lisaaReppuun(esineet.splice(i, 1)[0]);
- return;
- }
- }
- }
- function suoritaToiminto(toiminto) {
- if (toiminto === TOIMINTO.SEIS) {
- ukkeli.liikkeessa = !ukkeli.liikkeessa;
- } else {
- switch (toiminto) {
- case TOIMINTO.ALAS:
- ukkeli.suunta = SUUNTA.ALAS;
- break;
- case TOIMINTO.YLOS:
- ukkeli.suunta = SUUNTA.YLOS;
- break;
- case TOIMINTO.VASEN:
- ukkeli.suunta = SUUNTA.VASEN;
- break;
- case TOIMINTO.OIKEA:
- ukkeli.suunta = SUUNTA.OIKEA;
- break;
- default: return; // muut toiminnot
- }
- ukkeli.liikkeessa = true;
- }
- ukkeli.siirry();
- if (tuliEsteTormays(ukkeli)) {
- ukkeli.peruuta();
- }
- tarkastaEsineTormays(ukkeli);
- }
- function paivitaPisteet() {
- pisteet.textContent=ukkeli.pisteet;
- }
- function piirraPeli() {
- konteksti.clearRect(0, 0, piirtoalusta.width, piirtoalusta.height);
- for (let este of esteet) {
- este.piirra(konteksti);
- }
- for (let esine of esineet) {
- esine.piirra(konteksti);
- }
- for(let vastustaja of vastustajat) {
- vastustaja.piirra(konteksti);
- }
- ukkeli.piirra(konteksti);
- }
- function alustaNappaimisto() {
- nappaimisto = new Nappaimisto();
- nappaimisto.lisaaNappain(NAPPAIN.NUOLI_ALAS, TOIMINTO.ALAS);
- nappaimisto.lisaaNappain(NAPPAIN.NUOLI_YLOS, TOIMINTO.YLOS);
- nappaimisto.lisaaNappain(NAPPAIN.NUOLI_VASEN, TOIMINTO.VASEN);
- nappaimisto.lisaaNappain(NAPPAIN.NUOLI_OIKEA, TOIMINTO.OIKEA);
- nappaimisto.lisaaNappain(NAPPAIN.VALILYONTI, TOIMINTO.SEIS);
- }
- function alustaTaso() {
- ukkelikuvat.kuva = kuvavarasto.get(ukkelikuvat.nimi);
- ukkeli = new Ukkeli(ukkelikuvat, 5, 5, SUUNTA.ALAS, 10);
- vastustajakuvat.kuva = kuvavarasto.get(vastustajakuvat.nimi);
- vastustajat.push(new vastustaja(vastustajakuvat, 350, 300, SUUNTA.ALAS, 10));
- vastustajat.push(new vastustaja(vastustajakuvat, 200, 300, SUUNTA.YLOS, 15));
- esineet.push(new Esine(100, 205, 10, kuvavarasto.get('kolikko')));
- esineet.push(new Esine(305, 205, 50, kuvavarasto.get('kukka')));
- esineet.push(new Esine(155, 10, 5, kuvavarasto.get('kolikko')));
- esteet.push(new Este(0, -5, piirtoalusta.width, 10, 'green'));
- esteet.push(new Este(0, piirtoalusta.height - 5, piirtoalusta.width, 10, 'green'));
- esteet.push(new Este(-5, 0, 10, piirtoalusta.height, 'orange'));
- esteet.push(new Este(piirtoalusta.width - 5, 0, 10, piirtoalusta.height, 'orange'));
- esteet.push(new Este(100, 100, 100, 20));
- esteet.push(new Este(100, 300, 20, 20, 'blue'));
- }
- function alustakuvatiedot() {
- ukkelikuvat = {
- nimi: 'pelaaja40',
- kuva: null,
- ALAS: { x: 0, y: 0, leveys: 40, korkeus: 40, kuvienLkm: 3 },
- YLOS: { x: 0, y: 40, leveys: 40, korkeus: 40, kuvienLkm: 3 },
- VASEN: { x: 0, y: 80, leveys: 40, korkeus: 40, kuvienLkm: 3 },
- OIKEA: { x: 0, y: 120, leveys: 40, korkeus: 40, kuvienLkm: 3 }
- };
- vastustajakuvat = {
- nimi: 'pelaaja40',
- kuva: null,
- ALAS: { x: 0, y: 0, leveys: 40, korkeus: 40, kuvienLkm: 3 },
- YLOS: { x: 0, y: 40, leveys: 40, korkeus: 40, kuvienLkm: 3 },
- VASEN: { x: 0, y: 80, leveys: 40, korkeus: 40, kuvienLkm: 3 },
- OIKEA: { x: 0, y: 120, leveys: 40, korkeus: 40, kuvienLkm: 3 }
- }
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement