Materiaalit on lisensoitu Creative Commons BY-SA-lisenssillä, joten voit levittää niitä vapaasti, kunhan alkuperäisten tekijöiden nimiä ei poisteta. Jos teet muutoksia materiaaliin ja haluat levittää muunneltua versiota, se täytyy lisensoida samanlaisella vapaalla lisenssillä.
Alkuperäinen tekijä (2013): Jenna Tuominen
Linnakeseikkailu
Scratchin sivuilta löytyy linkin puolesta jaettu projekti, josta löytyy linnakeseikkailua varten joitakin alustavia kuvia kuten pelikenttiä. Sen voi remiksata oman projektin aluksi täältä. Remiksaus napin saa näkyviin ikkunan vasempaan yläkulmaan kun on ensin avannut projektin "Katso sisälle"-painikkeella.
Remiksaa jaettu projekti
Piilota tässä vaiheessa kaikki tuodut hahmot
Remiksatun projektin kuvat voi luonnollisesti myöhemmin muokata oman näköisikseen.
Aloitusruutu / Menu
Aloitetaan luomalla pelille menu ..tällä kertaa erityisesti ohjelmoijan avuksi sillä testatessa on helpompi siirtyä suoraan testattavaan kenttään kuin pelata koko peli haluttuun kenttään saakka.
Piirrä taustoihin menutausta.
Nimeä menutaustasi.
Piirrä menunappulat: "Pelaa" ja "Tasot"
Muista tehdessäsi useita nappuloita, että kannattaa ensin tehdä yksi tekstitön nappula, jota voi sitten kopioida tekstillisiä nappuloita varten sopivan verran. Alkuperäisen tyhjän nappulan voi piilottaa tulevaa varten.
Nimeä menunappulasi.
Tee skripti, jolla nappulat siirtyvät ohjelman alkaessa oikeisiin paikkoihin oikean kokoisina
Sijainnin asetus
Etsi Tapahtumat työkaluista aloituspalikka, joka käynnistää skriptin kun ohjelma käynnistetään.
Tämän jälkeen Liike työkaluista löytyy sopivia palikoita, joilla hahmon sijainnin voi asettaa. Voit asettaa kummatkin koordinaatit kerralla tai erikseen.
Koon asetus
Hahmon koko on Scratchissa niputettu hahmon ulkonäköön. Voit testailla minkä kokoinen nappulasi on nyt jos rullaat Ulkonäkö-työkalujen loppuun ja ruksaat kohdan koko. Koon asettamiseen löytyy samoista työkaluista palikka.
Tarkasta vielä, että olet tehnyt skriptit kummallekin nappulalle
Kun olet tehnyt tehtävän:
BONUS
Lisää halutessasi nappuloille joku efekti kun hiiri käy niiden päällä.
Nappulaefekti
Efekti voi olla esimerkiksi, että nappulan asuste vaihtuu tai sen koko muuttuu. Hahmoille voi myös lisätä erityisiä tehosteita Ulkonäöstä.
Efektin luonti
(Efekti on oma ominaisuutensa, tee sille oma skriptiosio.)
Niin, että nappula yleensäkään tunnistaa, että hiiri on sen päällä tarvitaan perus-koskettaako palikkaa Tuntoaisti valikoimasta. Palikan nuoli-valikosta voi valita hiiriosoittimen. Koska palikka itsessään on jos-ehto niin skriptin tarvitsee jatkuvasti tarkistaa pitääkö ehto paikkaansa.
Ehdon pitäessä paikkansa skriptin pitää edetä vaiheeseen missä valittu efekti lisätään nappulalle.
HUOM. Katso, että asetat efektin etkä vahingossa muuta efektin voimakkuutta. Jos jos-ehtoa tarkkaillaan jatkuvasti niin myös efekti muuttuisi jatkuvasti suuremmaksi.
Efektin poisto
Efekti on tietysti saatava myös pois päältä jos hiiri siirretäänkin pois nappulan päältä. Tähän tarkoitukseen onkin kätevämpi jos-muuten palikka, johon voidaan laittaa myös vaihtoehtoista toimintaa jos ehto ei olekaan voimassa.
HUOM. Katso, että asetat efektin etkä vahingossa muuta efektin voimakkuutta. Jos jos-ehtoa tarkkaillaan jatkuvasti niin myös efekti muuttuisi jatkuvasti suuremmaksi.
Kun olet tehnyt tehtävän:
Menunappuloiden aktivointi
Kumpikin nappula käynnistää jossain määrin erilaiset kenttien katselutilat, mutta koska näissä on myös yhteneväisyyksiä niin katsotaan ensin voidaanko näitä käynnistyskomentoja ryhmitellä pariksi yksinkertaiseksi komennoksi.
Pelitila
Kenttätila
Vaihtaa taustan
Aukaisee ensimmäisen kentän
Aukaisee kaikki ensimmäisen kentän esineet
Tuo näkyviin pelihahmon
Näyttää maskin
Näyttää pisteet
Vaihtaa taustan
Aukaisee ensimmäisen kentän
Aukaisee kaikki ensimmäisen kentän esineet
Näyttää nappulat kunkin kentän valitsemiseen
Voidaan siis ilmeisesti toteuttaa seuraavanlaiset komennot nappeihin:
Vaihda seuraava taso (kummatkin)
Avaa pelitilan hahmot
Avaa kenttavalikko
Aseta nämä komennot menunappuloihin (ja toteutetaan komentoihin reagoiminen seuraavaksi)
Komentojen lähetys
Koska kyseiset komennot ovat eri hahmojen välisiä niin tähän tarvitaan Lähetä palikkaa. Lisäksi komennon aloittava tapahtuma on nappulan klikkaaminen, joten etsi tämä Tapahtumat palikoista.
Anna lähetettäville komennoille kuvaavat nimet.
Tarkasta vielä, että olet tehnyt skriptit kummallekin nappulalle
Mietitään vielä komentoa "seuraava taso". On kätevämpää tehdä tällainen komento, joka toimii sitten joka tason vaihtoon, mutta tarvitsemme nyt myös jonkin "päällikön", joka johtaa touhua ja selvittää mikä taso pitää laittaa päälle kun tasoa vaihdetaan.
Tähän rooliin sopii hyvin esiintymislava.
Aseta ohjelma tietämään mikä taso on menossa
Tasot
Taso on numero, jonka jokainen hahmo voi tarvita tietoonsa, ja jota voi aina tarvittaessa muuttaa. Tehdään siis tätä varten muuttuja.
Päätetään, että taso menuvaiheessa on nolla
Tee esiintymislavalle skripti, joka vastaanottaa tiedon vaihtotarpeesta ja:
muuttaa tasoa yhden verran
lähettää oikeanlaisen "taso _" viestin eteenpäin
Tasojen vaihtaja
Halutaan siis vuoronperään tarkistaa, että jos taso on jotain niin lähetä tällainen viesti.
Edellisen kaltaisia testejä pitää tehdä niin monta kuin tasojakin on.
Kun olet tehnyt tehtävän:
Ensimmäinen taso
Tee kenttätausta esiintymislavalle
Nimeä kenttätaustasi
Aseta kenttätausta näkyviin
Taustan vaihto
Taustan vaihto käynnistyy kun avataan ensimmäinen taso, mikä oli jo määritelty lähetettäväksi komennoksi. Ota vastaan komento esiintymislavalla ja vaihda tausta Ulkonäön sopivalla palikalla.
Piilota ylimääräiset nappulat
Menunappuloiden piilotus
Menunappulat menevät piiloon avattiin sitten kumpi näkymä tahansa. Määritetään, että nappulat menevät piiloon kun ne kuulevat tason vaihdosta.
Korjaa menunäkymä jälleen oikeannäköiseksi
(Miten käy menulle jos klikkaat jompaa kumpaa menunappulaa?)
Menunappuloiden ja -taustan näyttö
Nyt kun painetaan jompaa kumpaa menunappulaa niin menunäkymä ei enää tule takaisin ohjelman käynnistyessä. Aseta menunappulat jälleen ilmestymään näkyviin ja tausta vaihtumaan.
Minne?
Menunappulat ja menutausta halutaan näkyviin kun ohjelma alkaa, eli kun painetaan vihreää lippua.
Menunappuloilla on oikeastaan jo yksi tällainen alustusskripti missä alustetaan sijainti ja koko. Näkyviin laittaminen on hyvä laittaa niiden seuraan.
Kun olet tehnyt tehtävän:
Kenttä näkyviin
Ota käyttöön ensimmäisen tason kartta, remiksatussa projektissa tämä on hahmo: taso 1
Jos piirrät itse kentän niin muista, että hahmon liike on helpoin rajoittaa Scratchissä väreillä, joten väritä seinät jollakin tietyllä värillä, jota ei esiinny muualla
Aseta kenttä piiloutumaan menun ollessa näkyvissä
Aseta kenttä näkyviin sopivassa tilanteessa
(Muista, että kenttä halutaan näkyviin, painettiin sitten kumpaa tahansa menun nappulaa.)
Miten?
Kenttä halutaan näkyviin vasta kun on painettu "Pelaa" tai "Kentät" nappuloita ja ne ovat valinneet ensimmäisen tason. Kenttä halutaan näkyviin nimenomaan kun lähetetään viesti "avaa ensimmäinen taso". Voidaan siis napata tuo komento nyt taso 1:n hahmossa ja siinä vaiheessa asettaa hahmo näkyviin.
Aseta halutessasi tason koko (suhteessa alkuperäiseen kuvaan)
Aseta taso siirtymään oikeaan kohtaan pelin alkua varten (pelihahmo ilmestyy keskelle)
Kentän sijoitus
Halutaan, että kentän auetessa pelihahmon alkupiste on ruudun keskellä.
Tämä on ilmiselvästi jotain mitä halutaan tehdä juuri kun kenttä asetetaan näkyväksikin. Lisätään samaiseen skriptiin siis myös mene kohtaan palikka.
Voit siirtää kentän hiirellä ja ottaa mene kohtaan palikan tämän jälkeen, jolloin palikassa on oikeat koordinaatit valmiiksi.
Kun olet tehnyt tehtävän:
Pelihahmo
Tee pelihahmo
(Seiniin törmäilyn tarkistukseen tarvitsee myös jonkun hahmokohtaisen värin)
Nimeä pelihahmosi
Tällä kertaa pelissämme ei liikukaan itse pelihahmo vaan pelihahmoa "liikutellessa" kartta liikkuu. Pelissä käytetään siis side-scrolling menetelmää. Pelin toteutuksen kannalta tämä tarkoittaa, että pelihahmo nököttääkin jatkuvasti ruudun keskellä.
Toteuta pelihahmolle skripti, jolla se sijoitetaan keskelle ruutua ja se asetetaan näkyviin pelatessa
Valitse tarkkaan minkä tapahtuman perusteella nämä tehdään, ettei pelihahmo näy kun tarkastellaan kenttiä pelaamatta.
Tapahtuma
Alustetaan pelihahmo kun saadaan viesti siitä, että "Pelaa"-nappulaa on painettu.
Kyseistä nappulaa painettaessa lähetettiin kaksi viestiä, mutta valitaan nyt se, jota ei lähetetä myös "Kentät"-nappulaa painettaessa.
Sijainnin määritys
Säädetään pelihahmo olemaan ruudun keskellä eli kohdassa (0,0).
Näkyvyyden määritys
Asetetaan pelihahmo näkyviin ja säädetään sen koko karttaan sopivaksi.
Pelihahmon piilotus
Kun pelihahmo on pelin alussa asetettu näkyväksi niin se ei menekään piiloon kun ohjelma käynnistetään ja menu tulee näkyviin. Tee skripti sitä varten, että pelihahmo menee piiloon kun ohjelma käynnistetään.
Kun olet tehnyt tehtävän:
BONUS - pelihahmon suunta
Laita halutessasi pelihahmo kääntymään siihen suuntaan, johon liikutaan. Esimerkiksi useiden Scratchin omien hahmojen tapauksissa näyttää fiksulta jos vasemmalle tai oikealle liikuttaessa vaihdetaan näennäistä kulkusuuntaa.
Pelihahmon kuvan kääntäminen
Pelihahmon suunnan kääntäminen ei välttämättä näytä vielä luonnolliselta jos hahmo sen johdosta voi kulkea pää alaspäin. Jos olet tehnyt hahmon, joka näkyy ylhäältäpäin niin tämäkin voi toimia.
Pelihahmojen sivupotrettien tapauksessa voi luoda asusteisiin normaaliasusteen kopio ja sitten kääntää se oikean yläkulman peilikuva-napilla.
Kääntymisen toteutus
Pelihahmon tulee kääntyä kun kulkusuuntaa vaihdetaan, eli kun painetaan jotain nuolinäppäintä. Ei myöskään haittaa jos pelihahmo laitetaan osoittamaan suuntaan johon se jo osoittaa. Pelaajalle tämä ei näy. Ohjelma voi siis laittaa pelihahmon jatkuvasti kääntymään siihen suuntaan mitä nuolta on painettu.
Nuolen painaminen voidaan tunnistaa normaaliin tapaan onko näppäin painettu-palikan avulla.
Kun olet tehnyt tehtävän:
Liikkuminen
Haluttiin siis, että liikkuessa pelihahmo pysyy paikallaan ja kartta liikkuu:
Tee skripti, jolla kartta liikkuu kun nuolia painetaan
Liikkuminen
Tee taso 1:een skripti, joka jatkuvasti kuuntelee sitä painaako käyttäjä jotain nuolinäppäintä.
Kun nuolinäppäintä on painettu muuta kartan x- tai y-koordinaattia, mutta normaalista liikkumisesta poiketen suunnat pitääkin nyt laittaa väärinpäin. Tämä näin koska jos hahmo liikkuu esimerkiksi oikealle niin maisema liikkuukin vastapäiseen suuntaan.
Estä seinien sisään meno
Seinän tunnistus
Scratchissä ei ole viereisten "ruutujen" sisällön tarkistamiseen palikoita ja vaikka olisikin niin testi tähän olisi hankala määritellä, koska hahmot ovat eri muotoisia ja niitä voi liikuttaa eri määrän.
Scratch kuitenkin päivittää kuvan esiintymislavalla vain tietyin välein ja skriptissä kaksi aivan peräkkäin tehtävää ulkonäön muokkausta eivät ehdi näkyä erillisinä. Tämän takia voimmekin oikeasti siirtää kartta haluttavaan suuntaan, testata koskeeko sen joku seinä hahmoon ja tällaisessa tapauksessa siirtää kartta takaisin ...eikä pelaaja ehdi nähdä tätä.
Seinä skriptissä
Seinän tarkistus testataan siis kun ollaan jo liikuttu, joten toteutetaan seinä-korjaus liikkumisskriptin sisällä.
Eli jokaisessa kohdassa missä on ensin liikutettu karttaa niin testataan sen jälkeen koskeeko seinän väri hahmon väriin. Jos näin on niin siirretään karttaa takaisin saman verran.
Muista tehdä seinän tarkistus joka suuntaan.
Kun olet tehnyt tehtävän:
Kerättävät tähdet
Lisätään nyt toimivaan kenttään ensimmäisiä pelielementtejä.
Piirrä tähti-hahmo
Nimeä tähti-hahmo
Tähtiä voi ilmestyä useissa eri kentissä, mutta toteutetaan nyt tähden ilmestyminen vain ensimmäiseen kenttään.
HUOM! Muista kuitenkin, että jos käyttäjä meneekin alun menusta Kentät-näkymään niin tämän näkymän tarkoitus on myös näyttää kaikki kenttään sijoitetut pelielementit niin, että ohjelmoijan (eli sinun ^___^ ) on helppo tarkastaa, että hahmo meni oikeaan kohtaan. Miten saat tähden ilmestymään kummassakin tapauksessa?
Aseta tähti piiloon ja näkyviin sopivista tapahtumista
Tähden näkyminen
Halutaan siis, että tähti ei näy kun ohjelma käynnistetään, mutta se ilmestyy kun saadaan viesti tapahtumasta "Avaa ensimmäinen taso", joka lähetettiin kummastakin menun nappulasta painaessa.
Tee siis tähteen kaksi skriptiä ja valitse niihin sopivat palikat Tapahtumista ja Ulkonäöstä.
Mietitään seuraavaksi miten tähti sijoitetaan kartalle?
1) Voisimme käyttää mene kohtaan palikkaa, mutta tähti pysyisi aina paikallaan vaikka kartta siirtyykin.
2) Jotta saisimme tähden liikkumaan voisimme toki laittaa senkin vastaanottamaan tiedon nuolinäppäimistä ..mutta tällöin tähti ei tiedä pystyikö pelihahmo siirtymään, eli oliko edessä seinä vai ei.
3) Edellistäkin ratkaisua voisi korjata vielä hieman: laitetaan taso 1 lähettämään viestejä jos pystyttiin liikkumaan! Tästäkin syntyy kuitenkin vielä ongelma sillä vaikka tähti liikkuisi oikeissa tapauksissa niin tähti ei voi liikkua kentän ulkopuolelle Scratchissä ..joten kun lähdetään tähteä kohti niin reunalla oleva tähti lähtee heti kohti pelaajaa riippumatta siitä miten kaukana sen piti olla.
4) Hylätään koko nuolinäppäin siirtyminen ja laitetaankin kiintopisteeksi itse taso. Liikkeestä löytyy palikka, jolla tähden voi laittaa menemään taso 1:n kohdalle. Tämän jälkeen pitää vain aina kuljettaa tähti kartalla oikeaan kohtaan.
Aseta tähti menemään johonkin kohtaan karttaa
Huomaa, että voit nyt käyttää myös "Kentät"-nappulaa testatessasi kartan ulkonäköä.
Tähden sijainnin asetus
Laitetaan siis aluksi tähti menemään mene-palikan avulla taso 1:n luokse. Tämän jälkeen muuta sen x- ja y-koordinaatteja sopivan verran.
Se mikä on "sopivan verran" voi olla hyvä testata ohjelmaa ajamalla ja korjata x- ja y-korjauksia kunnes tähti on sopivassa paikassa.
Tähti liikkumaan
Jos tähti menee vain kerran oikeaan paikkaan niin se ei tietenkään seuraa karttaa kun kartta alkaa liikkua. Korjaa skriptisi niin, että tähti korjaa sijaintiaan oikeaksi jatkuvasti.
Kun olet tehnyt tehtävän:
Maski
Kuten äsken kuitenkin mainittiin tähden sijoittamisen 3)-ratkaisun hylkäämisen perusteeksi niin kartalle sijoitetut pelielementit jäävät ruudun reunoille jos niiden pitäisi olla ruudun ulkopuolella.
Lisätään tästä syystä, ja pelillisen jännityksen vuoksi, peliin uusi hahmo: maski. Maskin tehtävä on piilottaa osa kentästä pelaajalta.
Tee maski (jaetusta projektista löytyy valmiina yhdenlainen)
Nimeä maskisi
Aseta maski ilmestymään ja katoamaan oikeissa tilanteissa
Jaetussa projektissa maskilla on kaksi ulkoasua, jossa toisessa on reikä pisteitä varten. Voit valita nyt maskin näkyvyyttä alustettaessa myös ulkoasun sille.
Maski näkyviin
Maski halutaan näkyviin vain pelitilaan eli valitse se viesti, joka lähetettiin vain pelitilaan siirryttäessä. Vastaanota se ja aseta maski näkymään tässä skriptissä.
Yleensä tekemämme hahmot ilmestyvät ruudulle siinä järjestyksessä kuin missä niitä teemmekin. Tällä kertaa maski on koko pelin ajan näkyvissä, mutta muut hahmot voivat ilmestyä tänä aikana useamman kerran, joten ei ole varmaa, että maski pysyy päällimmäisenä.
Aseta maski pysymään jatkuvasti päällimmäisenä
Maski päällimmäiseksi
Hahmojen suhteelliseen päällekkäisyyteen voi vaikuttaa Ulkonäöstä löytyvillä mene etualalle ja mene _ tasoa taaksepäin palikoilla.
Aseta siis maski menemään etualalle jatkuvasti pelin ajan.
Aseta tässä vaiheessa myös taso 1 pysymään koko ajan alimmaisena. Tähän riittänee, että se siirtyy koko ajan tason alemmas.
Maskin päällimmäisenä olon seurauksena pelihahmon puhekuplatkin jäävät sen alle, jos sellaisia haluat lisätä. Tämän vuoksi asetakin pelihahmo aina päällimmäiseksi ja maskin yhtä tasoa alemmas.
Miten saat maskin toiseksi ylimmäksi vain mene etualalle ja mene _ tasoa taaksepäin palikoiden avulla?
Kun olet tehnyt tehtävän:
Pisteiden keräys
Nyt kun hahmot, joiden pitäisi olla ruudun ulkopuolella, on piilotettu voidaan palata tähden toteutukseen. Tähti liikkuu jo halutusti, mutta siitä pitäisi saada pisteitäkin.
Luo jokin tapa millä voidaan muistaa paljonko pisteitä on
Pisteiden säilytys
Pisteet on siis numero, joka pitää muistaa, ja jota pitää voida pystyä muuttamaan haluttaessa. Pisteet voikin siis sijoittaa sitä varten tehtyyn muuttujaan.
Pisteet voi tällä kertaa olla hyvin tiedossa kaikille hahmoille.
BONUS - pisteet näkyviin maskin alta
Pisteet muuttujan arvo ei näy juuri luomamme maskin alta paitsi jos sijoitat muuttujan läpinäkyvälle alueelle.
Yksi tapa kiertää tämä on tehdä reikä maskiin. Linkin jaetussa projektissa maskista löytyy tällainen asuste maskille. Muuttuja pitää kuitenkin vielä siirtää reiän kohdalle tai reikä pitää siirtää muuttujan kohdalle.
Muuttujan ulkonäön saat reikään sopivaksi kun klikkaat muuttujan kuvaesitystä kerran niin, että se muuttuu värilaatikoksi.
BONUS - pisteet piiloon kun ei tarvita
Jos pisteet näkyvät pelinäkymässä niin ne näkyvät automaattisesti myös menun aikana ja kenttiä tarkastellessa.
Piilota muuttuja näkyvistä näiden ajaksi
Muuttujan piilotus ja näyttö
Tietopalikoista löytyy palikat myös muuttujien näyttöön ja piilotukseen.
Mieti jälleen missä tapauksessa muuttuja piilotetaan ja mikä laukaiseen näyttämisen.
Kun olet tehnyt tehtävän:
Toteuta tähden keräys
HUOM. Tee tälle oma skripti, jota kutsutaan aina kun tähti halutaan sijoittaa kenttään.
Tähden kerääminen
Tähti voidaan kerätä kuljettamalla pelihahmo sen päälle. Kun pelihahmo koskettaa tähteä se kerätään. Samalla tähti häviää.
Lisäksi kun tähti kerätään saadaan piste.
Toteuta tähden toiminnallisuus lähetä-vastaanota-menetelmällä tai määritä sille oma lohko.
Milloin saadaan tähti
Tähti saadaan siis kun pelihahmo koskettaa tähteen. Koska pisteiden saaminen on enemmän tähteen liittyvä tapahtuma niin tehdään skripti sille.
Lisäksi tiedetään, että hahmojen piti koskettaa toisiaan. Tähän löytyy näppärästi koskettaako palikka.
Nyt voitaisiin laittaa tähti ikuisesti katsomaan, että jos koskettaa pelihahmoon niin tehdään jotain. Mutta Scratchillä oli tähän myös toinen kätevä palikka, jonka tapauksessa skripti odottaa kunnes kosketetaan.
Milloin tähti aktivoituu
Halutaan siis tähti, joka toimii joka kentän alussa eikä vain ensimmäisellä tasolla. Vain tasot kuitenkin tietävät milloin taso sisältää tähden, joten vain ilmoitus tasosta voi aktivoida sen.
Tehdään nyt joko uusi viesti, joka lähetetään tai uusi lohko. Aina kun uusi taso luodaan voi kyseisen tason tähden luova skripti lähettää viestin aktivoinnista tai kutsua lohkoa.
Näin riittää, että aktivoinnin skripti määritellään vain kerran.
Uuden lohkon tekeminen aloitetaan valitsemalla toiminnolle sitä kuvaava nimi.
Scratch antaa lohkon luonnin jälkeen automaattisesti sille määrittelypalikan. Aina kun lohkoa kutsutaan työkaluihin ilmestyneellä palikalla toteutetaan kaikki tämän määritelmän alle kerätyt skriptit.
Samassa vaiheessa nimen antamisen kanssa voit määrittää voiko toteutettavan lohkon suoritus riippua sille annettavista tiedoista.
Esim. Halutaan tehdä lohko, joka siirtää kissaa niin monta kertaa oikealle kuin lohkoa kutsuva skripti on määritellyt. Tällaisen skriptin lohko ja sen käyttö näyttäisi tältä:
Kuvassa näkyvä number1 on palikka, joita saa jatkuvasti lisää raahaamalla niitä määrittelypalikasta.
Korjaa pisteitä niin, että pisteitä on aina pelin alussa nolla
Muuttujan alustus
Muuttujan "pisteet" arvo on asetettava nollaan aina pelin aluksi. Esimerkiksi kun ohjelma käynnistetään.
Tieto palikoista löytyy arvon asetukseen sopiva palikka.
Kun olet tehnyt tehtävän:
BONUS - tähden animointi
Voit myös lisätä tähdelle jonkin toiminnallisuuden pisteiden lisäksi. Esimerkiksi tähti voi pienentyä tai pienentyä sykkien jatkuvasti kunnes se häviää.
Tämä tuo haastetta peliin jos pisteet pitää kerätä esimerkiksi näin tietyssä ajassa.
BONUS - bugi fiksi
Jos hahmo pelin lopuksi jää tähden kohdalle niin seuraavan pelin alussa pelaaja ehtii saada tähdestä pisteen ennen kuin se siirtyy oikealle paikalleen. Tämä koska Scratchissä useat hahmot voivat vastaanottaa saman viestin "samaan aikaan", joten järjestys missä asiat tehdään on epäselvä.
Bugin voi korjata laittamalla ennen kosketustestausta testin, joka vaikka odottaa kunnes hahmo on lähtenyt liikkeelle. Pelaaja on yleensä pelin hitain "osa".
Tikkaat seuraavaan tasoon
Toteutetaan seuraavaksi vielä tikkaat, joilla päästään sitten etenemään seuraavaan tasoon. Katso tarvittaessa apua seuraaviin tähdestä.
Tee tikkaat (tai ota käyttöön jaettu hahmo)
Nimeä tikkaat
Aseta tikkaat näkyviin ja piiloon sopivissa kohdissa peliä
Aseta tikkaat siirtymään tason mukana jossain tietyssä sijainnissa
Nyt kun tikkaat ovat vuorostaan osa tasoa niin luodaan niille vielä toiminnallisuus. Tähdet antoivat pisteitä, mutta tikkaat siirtävät seuraavalle tasolle.
Koska tikkaita käytetään varmaan jälleen useilla eri tasoilla niin olisi kätevää, että tälle luodaan oma lähetä-vastaanota -ratkaisu tai uusi lohko. Esimerkiksi "pystytä tikkaat". Eri tasojen tikkaat joutuvat kuitenkin käynnistämään eri tasoja, esim. "Aloita taso 2", "Aloita taso 3", vaikka skripti tulee aina olemaan sama. Tehdäänkin niin, että tikkaat lähettävät vain viestin, että "vaihda seuraavaan tasoon".
Tämä meillä olikin jo määritelty esiintymislavalla.
BONUS - tason läpäisy
Animoi tason läpäisy jotenkin. Laita esimerkiksi pelihahmolle näkymään jokin puhekupla.
HUOM. Jos pelihahmosi puhekupla jää maskin alle niin korjaa se BONUS-tehtävän "pelihahmo päällimmäisenä" avulla.
Tason vaihto
Pelihahmon päästyä tikkaille lähetetään viesti tason vaihdosta ja esiintymislava asettaa uuden tason näkyviin, mutta tätä ennen:
Lisää esiintymislavan tasovaihto skriptiin "piilota kaikki" -viestin lähetys
Aseta kaikki ylimääräiset hahmot piiloutumaan kun vastaanotetaan edellisen kohdan viesti
Piiloutumisten yhteyteen voit myös laittaa hahmojen skriptien lopettavia käskyjä
BONUS - bugi fiksi
Pelin lopuksi pelihahmo voi herkästi jäädä tikkaiden luokse ja Scratch alkaa näissä tapauksissa usein jättämään tikkaat pelihahmon kohdalle niin, että heti uuden pelin aluksi päästään uudelle tasolle.
Tämän voi estää laittamalla tikkaiden ja pelihahmon kosketusta odottava skripti odottamaan ensin, että pelihahmo yleensäkään liikkuu johonkin suuntaan.
Laitetaan seuraavaksi taso 2 toimintavalmiiksi.
Tee/Etsi taso 2:n kuva ja laita se näkymään oikeasta viestistä
Aseta taso 2 oikeaan kohtaan ja liikkumaan
(Voit kopioida näitä tasosta 1)
Kartta näkymä koodarille
Niin, että tason 2 sijainnin voi tarkistaa pitää testatessa ensin mennä tason 1 läpi ja sitä mukaa kun peli etenee niin tämä testaus muuttuu jatkuvasti hankalammaksi. Menuvalikosta pystyi menemään 'Kartat'-osioon. Tehdään tämä nyt toimintavalmiiksi jatkon helpottamiseksi
Luo nappulahahmoja tasojen valintaa varten
Kannattaa tehdä yksi tyhjä, numeroimaton nappula ja kopioida sitä sopiva määrä muita nappuloita varten.
Nimeä nappulahahmot
Aseta nappulahahmot näkyviin vain kartat-näkymään
(Muista, että menunappuloita klikatessa lähetettiin viestejä, joista yksi olisi nyt kätevä.)
Lisää jokaiselle tasonappulalle skripti, joka lähettää oikeasta tapahtumasta oikean taso _ viestin.
Laita tasonappulat myös lähettämään piilotusviesti
Nyt kun pelimme ulkonäön tarkkailu onnistuu myös nopeasti ohjelmoijaa varten niin ruvetaan lisäämään uuteen karttaamme pelielementtejä:
Aseta tähti vastaanottamaan viesti tasosta 2 ja laita se näkyviin oikeaan kohtaan
Tee sama tikkaille
Taikajuoma
Valmiissa tarjotussa tasossa 2 on erikokoisia oviaukkoja ja säädetään nyt pelihahmo sen kokoiseksi, ettei se mahdu oikeanpuolimmaisesta. Tehdään tätä varten peliin taikajuoma, joka hetkeksi pienentää hahmon.
Taikajuoma alkaa siis vaikuttaa kun pelihahmo menee taikajuoman päälle. Tässä vaiheessa taikajuoma poistetaan kentästä tai sille valitaan "tyhjä-asuste".
Seuraavaksi pelihahmo alkaa pienentyä, mutta koska taikajuoma ei suorasti vaikuta pelihahmoon niin sen tulee lähettää pelihahmolle käsky pienentyä.
Itse pienentymisen pelihahmoon voi toteuttaa niin, että ensin toistetaan muutama kerta koon pienennys sopivalla Ulkonäön palikalla. Sitten mahdollisesti pysytään pienenä jonkun aikaa. Ja lopulta toistetaan taas muutama kerta koon suurennus.
BONUS - Tietoa taikajuomasta
Pelaaja ei välttämättä tiedä yhtään mitä taikajuomasta tapahtuu pelissä. Laita pelihahmo kertomaan pelaajalle taikajuoman vaikutus kun päästään oikealle tasolle tai tarpeeksi lähelle taikajuomaa.
HUOM. Jos pelihahmosi puhekupla jää maskin alle niin korjaa se BONUS-tehtävän "pelihahmo päällimmäisenä" avulla.
Pelin loppu
Lisää peliin haluamiasi kenttiä ja pelielementtejä.
Pelin voi todennäköisimmin voittaa jos pääsee ylimpiin tikkaisiin/portaisiin.
Pelin voi taas hävitä jos jää vaikka hahmon pienennyksen aikana jumiin seinään. Pelin häviäminen on kuitenkin yleisesti ottaen hankalampi testata, koska ohjelman pitää jotenkin ymmärtää tilanne mistä ei voida edetä pidemmälle.
Esim. Seinän sisään jumittamisen voi testata siirtämällä hahmoa joka suuntaan ja varmistamalla, että se pysyy seinän sisällä. Tämä voi toisaalta mennä pieleen jos hahmoa kääntämällä asuste olisikin lähtenyt seinän sisästä pois ja vapauttanut hahmon.
Häviön testauksen kanssa kannattaakin olla varovainen, ettei pelaaja menetä pitkälle pelaamaansa pelisessiota tilanteeseen mistä olisi oikeasti voinutkin vielä jatkaa.