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ä (2014): Jenna Tuominen


Takaisin: Syksy 2014

Virtuaalilemmikki

Pelin toiminta Tarkoituksena on luoda ohjelmoitu lemmikki, jota voi syöttää, leikittää ja nukuttaa. Lemmikki myös reagoi sen hoitoon, se on apaattinen jos sillä on nälkä tai onneton olo, se on ärsyyntynyt jos sen kanssa ei ole leikitty hetkeen ja se voi pökertyä jos sitä ei hoida. Pelaaja ohjaa lemmikkiä syömään, leikkimään ja nukkumaan. Lemmikki seikkailee tabletin näköisellä alueella.
Vaikeustaso Peli sopii yksinkertaisimmillaan aloittelijoille, muttei välttämättä aivan ensimmäiseksi peliksi. Kaikkine ominaisuuksineen toteutettuna se toisaalta on huomattavan haastava myös pitempään Scratchiä käyttäneille.
Oppimistavoitteita - Tutustutaan koordinaatistoihin ja suuntiin.
- Opitaan luomaan hahmoja, jotka liikkuvat näppäimistösyötteillä.
- Opitaan rajoittamaan pelihahmon liikettä.
- Opitaan luomaan eri hahmojen välisiä vuorovaikutuksia ja jakamaan ohjelman tehtäviä oikeille hahmoille.
- Opitaan silmukoiden käyttöä ja ehtolauseita.
- Opitaan käyttämään muuttujia muistettavina arvoina.
- Tutustutaan yksinkertaiseen ajastamiseen sekä oikean ajastimen käyttöön.
- Tutustutaan muuten jatkuvien toimintojen tauottamiseen.
Toimiva versio Virtuaalilemmikki mallina Scratchissa
Variaatioita toteutuksessa Lemmikiksi käy kaikki mahdollinen mille voi kuvitella jonkin ruoan, piristyksen aiheen ja lepopaikan. Sen ei siis tarvitse olla edes elävä jos lemmikin tekijällä on riittävästi mielikuvitusta.

Kuvia mallipelistä:

Työvaiheet:

Väriselite:

Oppimistavoite
Tarkennus tekotapaan
  1. Ennakoi taukojen luomista
    Jotta jatkossa saamme normaalisti ikuisia toiminnallisuuksia tauolle niin tulemme pysäyttämään niiden toiminnan kokonaan. Jotta tauon jälkeen toiminnallisuus taas "jatkuisi" niin käynnistetään toiminnot silloin taas uudelleen. Tässä tapauksessa "kun klikataan lippua" ei toimi vaan käytetään ennemmin "kun vastaanotan viestin Herää" -tapahtumaa aktivointiin.

  2. Pelihahmon liikuttelu
    Opitaan toteuttamaan käyttäjän nuolin liikuteltava hahmo. Tutustutaan koordinaatistoon ja suuntiin.
    1. Pelihahmo liikkuu nuolilla
    2. Älä käytä "kun painetaan näppäin"-palikoita, ne eivät toimi halutusti jos painetaan useita nuolinäppäimiä yhtä aikaa. Toteuta ennemmin rakenne, jossa ikuisesti kysellään vuorotellen kaikilta näppäimiltä ovatko ne painettuna.
    3. Pelihahmo kääntyy kulkusuuntaansa
    4. Hahmo voi joko näyttää kulkevan kaikkiin nuolen suuntiin tai osoittaa erikseen vain oikealle ja vasemmalle. Pelihahmon pyörimistavan voi valita (i)-nappulasta hahmon päältä, tai ohjelmassa alkaessa "aseta pyörimistapa"-palikalla.
    5. Pelihahmon liikkumisalue rajattu
    6. Hahmo tarkistaa aina liikkumisen jälkeen koskettaako se jotain kiellettyä väriä (esim. piirretyn näytön reuna). Jos on liikuttu liian pitkälle niin liiku sama määrä takaisin. Peli ei ehdi piirtää edestakaista liikettä näkyviin.

  3. Toteuta nälkä
    Opitaan käyttämään muuttujia apuna numeroiden muistamiseen.
    Jaetaan työtehtäviä ohjelman sisällä. Lemmikki hoitaa vain liikkumisen, nälän hoitaa Ruoka-hahmo. Työtehtävien järkevän jaottelun johdosta on myös helpompi etsiä myöhemmin skriptejä kun ne eivät ole kaikki yhdessä paikassa, joka pursuaa skriptejä.
    1. Alusta muuttuja "kylläisyys" pelin alussa
    2. Lemmikille tulee pikkuhiljaa nälkä
    3. Kun lemmikki on hereillä niin vähennä siltä jatkuvasti kylläisyyttä.
    4. Lemmikki syö jos se koskee ruokaan
    5. Lemmikki ei voi ylensyödä itseään vaan lakkaa syömästä jos se on täynnä

  4. Laita kylläisyys näkymään
    Kaksoisklikkaamalla esiintymislavalla näkyvää 'kylläisyys'-laatikkoa sen ulkonäkö muuttuu. Nälän määrän saa kätevästi näkymään kun muuttujan näyttää liukupalkkina.

  5. Lemmikin pökertyminen nälästä pysäyttää pelin
    1. Pökertymisestä lähetetään viesti, jonka johdosta skriptit pysäytetään
    2. Pökertymis/elvytysnappula näytetään vain kun lemmikki on pökertynyt
    3. Nosta myös nappula päällimmäiseksi komponentiksi.
    4. Elvytysnappulan klikkaaminen herättää lemmikin sekä alustaa uudelleen kylläisyyden
    5. Lähetä tässä siis "Herää"-viesti, jota ohjelmoinnin alussa ennakoitiin

  6. Toteuta lemmikin onnellisuus
    Opitaan käyttämään muuttujia apuna numeroiden muistamiseen.
    1. Alusta muuttuja "onnellisuus" pelin alussa, mutta myös lemmikkiä elvytettäessä
    2. Lemmikille tulee pikkuhiljaa tylsä
    3. Kun lemmikki on hereillä niin vähennä siltä jatkuvasti onnellisuutta.
    4. Lemmikki pökertyy tylsyydestä
    5. Lemmikki leikkii jos se koskee leluun
    6. Lemmikki ei leiki itseään hyperaktiiviseksi vaan ymmärtää lopettaa ajoissa

  7. Lemmikki voi näyttää surulliselta
    Lemmikin asustetta vaihdetaan jos kylläisyys tai onnellisuus on alle jonkin rajan

  8. Toteuta lemmikin nukkuminen
    Jos peti-hahmo on luotu pelihahmon jälkeen niin pelihahmo tulee automaattisesti liikkumaan sen takana. Asettaaksesi pedin pelihahmon taakse mene 'Ulkonäkö'-välilehdelle ja klikkaile "mene 1 tasoa taaksepäin" pedin ollessa valittuna kunnes se siirtyy pelihahmon taakse. Koska tämän ei tarvitse olla osa pelin aktiivista toiminnallisuutta niin kyseistä nappulaa ei tarvitse vetää edes työskentelyalueelle.
    Jaa työtehtäviä jälleen eri hahmoille järkevästi. Tee nämä pedin toiminnallisuuksiin.
    1. Heräämisen jälkeen odota kunnes lemmikki koskee petiä lähetä viesti "Nuku"
    2. Nukkuminen pysäyttää kaiken muun toiminnallisuuden paitsi lemmikin liikkumisen, jotta se voi nousta pedistä
    3. Lemmikin asuste muuttuu nukkuvaksi kun se osuu petiin
    4. Lemmikin pitää yhä voida liikkua unissaan joten sen skriptejä ei voi pysäyttää, jotta lemmikin ilmeenvaihtoskripti kuitenkin lakkaisi toimimasta pitää sen toiminta estää erilailla. Lisää erillinen tarkistus siitä kosketaanko petiä.
    5. Nukahtamisen jälkeen odota kunnes lemmikki ei enää koske petiä ja lähetä viesti "Herää"

  9. Lemmikki on huomionkipeä
    Tutustutaan ajastimen käyttöön
    1. Ajastimen nollaus kun lemmikkiä hoidetaan
    2. Nollaa ajastin siis aina kun lemmikkiä liikutetaan.
    3. Aseta lemmikki ärsyyntyneen näköiseksi jos sitä ei hoideta tarpeeksi pitkään aikaan
    4. Tämän tarkistuksen voi laittaa jo olemassaolevaan ilmeenvaihtoskriptiin surullisuustarkistuksen jälkeen, jolloin lemmikki ei myöskään tule äksyksi ollessaan nukkuessa. Teoriassa lemmikin ollessa hereillä sen ilme vaihdetaan ensin onnelliseksi tai surulliseksi ja sen jälkeen välittömästi ärtyneeksi jos se on ärtynyt. Käytännössä tätä ei kuitenkaan ehditä piirtämään.