Materiaalit on lisensoitu Creative Commons BY-NC-SA-lisenssillä, eli materiaalin levittäminen ja muokkaaminen on sallittu, kunhan tekijöiden nimet säilyvät mukana ja jatkoversiot julkaistaan samalla lisenssillä. Kaupallinen käyttö kielletty.

Alkuperäinen tekijä (2015) Anni Järvenpää, korjaukset Jenna Tuominen


Takaisin: Kevät 2015

Ampumahiihto

Pelin toiminta Hiihtäjä hiihtää ampumapaikalle, ampuu kohti neljää maalitaulua ja hiihtää maaliin mahdollisimman nopeasti. Jokaisesta ohi ammutusta laukauksesta seuraa aikasakko.
Vaikeustaso Pelin toteuttamisen haastavuuteen on mahdollista vaikuttaa hyvin laajasti pienin muutoksin. Aloittelijat voivat toteuttaa vain hiihtoladun, jonka päässä ammutaan, minkä jälkeen peli päättyy, kun taas edistyneemmät ohjelmoijat voivat esimerkiksi animoida hiihtäjän ja laittaa hiihto- ja ampumisosuudet vuorottelemaan.
Oppimistavoitteita
  • Muuttujien käyttö.
  • Muuttujien alustaminen.
  • Muuttujien näyttäminen ja piilottaminen.
  • Silmukoiden käyttö.
  • Tutustutaan lohkoihin.
  • Viestien lähettäminen ja vastaanottaminen.
  • Rämpyttämiseen perustuva hahmon liikuttaminen.
  • Yksinkertainen animointi.
Toimiva versio Tavallinen ja yksinkertainen mallipeli.
Variaatioita toteutuksessa Pelistä on yllä esitetty kaksi versiota: tavallinen, jossa pelihahmon hiihtäminen on animoitu ja kesken hiihtämisen ammutaan, sekä yksinkertainen, jossa pelihahmoa ei ole animoitu ja vasta hiihtämisen päätteeksi ammutaan tauluihin ilman, että taustaa vaihdetaan. Haluttaessa vielä tavallista monipuolisempi peli, voidaan radasta esimerkiksi tehdä lineaarisen sijaan syklinen ja suoraviivaisen aikasakon sijaan ohi ammutuista laukauksista langettaa sakkokierros.

Kuvia mallipelistä:

hiihtonäkymä ampumisnäkymä palkintopalli ja ajan näyttäminen

Työvaiheet:

Väriselite:

Oppimistavoite
Tarkennus tekotapaan
  1. Pelihahmon liikkuminen
    Opitaan lohkojen toimintaperiaate.
    1. Pelihahmon paikan alustaminen
    2. Muuttujien alustaminen.
      Kaikki tiedot on alustettava pelin alussa, jotta peli ei ala edellisen pelin lopputilanteesta. Tässä tapauksessa siirretään pelihahmo ladun alkuun.
    3. Rämpytys
    4. Opitaan liikuttamaan pelihahmoa uudella tavalla.
      Pelihahmon animointi.
      Pelihahmo liikkuu rämpyttämällä nuolinäppäimiä: yhdellä painalluksella hahmo liikkuu lyhyen matkaa eteenpäin, minkä jälkeen täytyy päästää ensimmäinen nappula ylös ja painaa toista nappulaa. Toteutuksessa kannattaa hyödyntää odota kunnes-palikkaa. Mikäli toteutetaan tavallista versiota, kannattaa hiihtäminen laittaa omaksi lohkokseen, sillä hiihtäminen täytyy lopettaa ja aloittaa uudelleen ampumisen takia.
      Peruspelissä pelaajan jalat ja kädet liikkuvat pelaajan hiihtäessä eteenpäin. Tämä voidaan tehdä piirtämällä kustakin pelihahmon asennosta oma asuste ja vaihtamalla asustetta aina, kun pelihahmoa liikutetaan eteenpäin.
    5. Ampumaan siirtyminen
    6. Ohjelman jakaminen loogisiin osiin.
      Viestien lähettäminen.
      Tehdään uusi skripti, jossa pelihahmon ollessa tietyssä kohdassa, vaihdetaan ampumistilaan eli pelihahmo piilotetaan ja hiihtämisen mahdollistavat skriptit pysäytetään. Lisäksi täytyy lähettää viesti, jossa kerrotaan ampumisvaiheen alkamisesta. Yksinkertaista varianttia toteutettaessa pelihahmoa ei tarvitse piilottaa.
  2. Maalitaulut
    Tutustutaan klooneihin.
    Opitaan käyttämään muuttujia.
    Opitaan korvaamaan koodin kopioiminen silmukoilla.
    1. Maalitaulun kloonaaminen
    2. Kun maalitaulu kloonataan, yhden maalitaulun piirtäminen riittää, eikä koodia tarvitse kopioida. Pelin alkaessa maalitaulu on piilossa. Kun vastaanotetaan viesti ampumisvaiheeseen siirtymisestä, siirretään maali paikalle, johon ensimmäinen maalitaulu halutaan piirtää. Tämän jälkeen maalitaulusta luodaan klooni ja siirretään alkuperäistä taulujen välisen etäisyyden verran. Näitä vaiheita toistetaan, kunnes maaleja on riittävästi. Tähän kannattaa käyttää silmukkaa. Lisäksi ensimmäisen maalin paikka ja maalien välinen etäisyys kannattaa tallentaa muuttujiin, sillä niitä tarvitaan myös muualla.
    3. Kloonina aloittaminen
    4. Kloonit asetetaan aluksi näkyviin ja niiden asusteeksi asetetaan ampumaton maalitaulu.
  3. Tähtäin
    Tähtäimeen kannattaa laittaa jotain sellaista väriä, jota voidaan käyttää koskettaako väriä -palikan kanssa tarkastamaan, onko tähtäin maalitaulun kohdalla.
    1. Tähtäimen piilottaminen pelin alkaessa
    2. Ampumisen aloittaminen
    3. Ampumisvaiheen alkaessa tähtäin siirretään ensimmäisen maalitaulun kohdalle, asetetaan näkyville ja suoritetaan tähtäyslohko, jolle kirjoitetaan sisältö seuraavassa vaiheessa. Ampumisen jälkeen tähtäin siirretään seuraavan maalitaulun kohdalle. Tämäkin vaihe toistetaan jokaiselle maalitaululle, joten kannattaa jälleen käyttää silmukkaa.
    4. Tähtäys-lohkon toteuttaminen
    5. Tähtäin liikkuu y-suunnassa automaattisesti ja pelaaja käyttää ampumiseen ainoastaan yhtä nappulaa. Kunnes pelaaja painaa tätä nappia, tähtäintä liikutetaan toistuvasti ylhäältä alas maalitaulun edessä. Kun pelaaja ampuu, lopetetaan tähtäimen liikuttaminen ja lähetetään viesti, joka kertoo pelaajan laukaisseen aseensa. Ennen viestin lähettämistä kannattaa odottaa, että pelaaja päästää ampumisnapin takaisin ylös, sillä muuten napin jättäminen pohjaan liian pitkäksi aikaa johtaa siihen, että kaikki maalitaulut ammutaan kerralla.
    6. Ampumisen lopettaminen viimeisen laukauksen jälkeen
    7. Kun jokaista maalitaulua kohti on käytetty yksi laukaus, palataan hiihtotilaan (peruspeli) tai näytetään pisteet (yksinkertainen peli). Lisäksi tähtäin ja peruspelin tapauksessa myös maalitaulut piilotetaan. Tähän kannattaa jälleen käyttää viestiä.
  4. Ampuminen
    1. Maalitauluun osuminen
    2. Jos tähtäin on laukaistaessa maalitaulun kohdalla, maalitaulu vaihtaa asustetta ja pelaajalle kirjataan yksi osuma. Tätä varten täytyy luoda oma muuttuja, joka alustetaan nollaksi kun peli alkaa.
  5. Hiihtämisen jatkaminen (peruspeli)
    1. Taustan vaihtaminen laduksi
    2. Pelaajan siirtäminen ladulle ampumispisteen jälkeen
    3. Pelaajan asettaminen näkyviin
    4. Hiihdä-lohkon kutsuminen uudelleen
  6. Pelin päättyminen kun pelaaja on hiihtänyt koko ladun
    1. Pisteiden laskeminen
    2. Pisteenlaskua varten täytyy pitää kirjaa peliin kuluneesta ajasta. Tätä varten voidaan käyttää ajastinta, joka nollataan pelin alkaessa.
      Jokaisesta ohi ammutusta laukauksesta saa aikasakon, joka lisätään kuluneeseen aikaan.
    3. Pelihahmo piilotetaan (peruspeli)
    4. Taustaksi vaihdetaan palkintopalli (peruspeli)
    5. Pisteet asetetaan näkyville
    6. Muuttujien näyttäminen ja piilottaminen.
      Pelin alussa piilotetava pistemuuttuja asetetaan näkyville. Peruspelissä voi halutessaan korvata tämän sillä, että pelihahmo sanoo pisteensä.