tiistai 23. joulukuuta 2014

Viimeinen kerhokerta 15.12.

Viimeisellä kerralla jatkettiin kesken jääneitä pelejä. Useiden kerholaisten toivomuksesta meloninheittopeliin lisättiin mahdollisuus ampua meloneita, jolloin siitä tuli eräänlainen savikiekkoammuntasimulaatio.

Yksi melko helppo tapa toteuttaa ampuminen olisi hiirellä klikkaamalla. Se tekisi pelistä turhan helpon, ellei kohde lentäisi hyvin nopeasti ja yllättävästi. Sen sijaan tehtiin vähän monimutkaisempi järjestelmä, jossa ammus näyttää lentävän pelaajasta melonia (tai savikiekkoa) kohti. Kun hiirellä klikataan, painetaan muistiin klikkauskohdan koordinaatit asettamalla kaksi uutta muuttujaa (x ja y). Ammuksen lentorata lähtee samasta x-koordinaatista kuin mihin pelaaja klikkasi, mutta sen y-koordinaatti on aluksi näytön alareunassa ja kasvaa kohti klikkauskohdan y-koordinaattia. Kun ammuksen koko samalla pienenee, se näyttää lentävän kauemmas pelaajasta.

Seuraavassa skriptissä palikka "muuta y:n arvoa" voi vaatia miettimistä. Ensinnäkin, kun ammus lähtee alareunasta y-koordinaatista -200, sen on kuljettava y + 200 askelta ylöspäin: ensinnäkin 200 askelta, jotta se pääsee nollatasolle, sitten y askelta, jotta se pääsee hiiren klikkauksen koordinaattiin asti. Vaikka hiirtä klikattaisiin nollatason alapuolella, sama laskutoimitus sopii, koska silloin y on negatiivinen. Toiseksi, kun tämä kuljettava askelmäärä jaetaan usealle toistokerralle, kokonaismäärä pitää jakaa toistokertojen lukumäärällä. Seuraavassa toistokertoja on 10, joten kaikkiaan ammusta pitää siirtää ylöspäin (y + 200) / 10 askelta.


Milloin melonin pitäisi räjähtää? Helppo ratkaisu on räjäyttää se heti, kun se koskettaa ammusta, mutta tämä voi tehdä pelistä liian helpon. Haastavampi peli saadaan aikaan, kun vain tarpeeksi kauas edennyt ammus voi osua kohteeseen. Tämän voi toteuttaa monella tavalla: ammuksen skripti voi asettaa muuttujan, lähettää viestin tai vaihtaa ammuksen ulkoasua, kun ammus on tarpeeksi kaukana. Oheisessa esimerkkipelissä on valittu viimeinen vaihtoehto: ammus räjähtää ja muuttaa ulkoasua, ja meloni tietää tuhoutua jos se koskettaa räjähtäneen ammuksen väriä.


Tässä vielä ohjaajan mallipeli, jossa nämä skriptit yhdistetään aiempaan lennätykseen:  meloninammunta.

Ei kommentteja:

Lähetä kommentti