Scratchi projekti struktuur ja põhiobjektidScratchi projekt koosneb omavahel seotud objektidest. Kasutatavad objektid ja seosed nende vahel on toodud UML klassidiagrammina. Vt jaotist Modelleerimine. Projekti loomisel ja täitmisel saab kasutada ja muuta objektide omadusi (spraidi ja hiirekursori koordinaadid, spraidi suurus ja nähtavus, taimeri ja muutuja väärtus jm). Suur osa Scratchi käskudest (käsuplokkidest) on käsitletavad objektide meetoditena, mille abil saab määrata tegevusi (liikumine, pööramine, värvi muutmine jm) spraitide ja ka teiste objektidega (pliiats, heli jm). Teatud omadusi (n. lava olek) saab määrata ja tegevusi täita ainult loomise faasis nö „käsitsi“, mitmeid omadusi saab muuta nii loomise faasis kui ka skriptide täitmisel. Mõnede objektide abil saab tekitada sündmusi (hiir, klahvid), mõned (spraidid, lava jm) aga võivad reageerida täitmise ajal teatud sündmustele (hiireklõps, vajutus klahvile jm).
Muutujad ja loendid võivad esineda kahel tasemel: Projekt ja Sprait. Esimesel juhul on tegemist globaalsete andmetega, millele on juurdepääs projekti kõikidel spraitidel, teisel lokaalsete andmetega, millele on otsene juurdepääs ainult selle spraidi skriptidel, mille jaoks on muutuja või loend loodud. ProjektProjekt on kõrgema tasemega objekt, kõik teised objektid kuuluvad selle sisse (lava, spraidid, muutujad jm) või on kasutusel sellega töötamisel (hiir, klahvid jm).
Lava ja taustadLava (Stage) on ekraani piirkond, kus asuvad ja tegutsevad kõik spraidid. Siin asub ka suurem osa kasutajaliidese elementidest: muutujate näidikud (monitorid), käsunupud jms.
Koordinaattelgede algus on lava keskel. Lava on 480 pikselit lai (x_min = -240, x_max = 240) ja 360 pikselit kõrge (y_min = -180, y_max = 180). Tegemist on tingühikuga, mille suurus sõltub ekraani suurusest ja kasutatavast eraldusvõimest.
Taustad moodustavad järjestatud kogumi, mille üks element on nähtav (aktiivne). Tausta saab muuta nähtavaks loomise faasis, klõpsates vastavat ala vahelehel Taustad. Saab muuta taustade järjestust, lohistades hiirega ikoone vajalikele kohtadele. Taustu saab vahetada ka lava skriptides käskudega: [võta taust nimi], [võta taust number] ja [järgmine taust]. Spraidid ja kostüümidOlemus, omadused ja meetodidSpraidid on Scratchi projektide peamised objektid, rakenduste töö on suurel määral orienteeritud just nende kasutamisele. Sprait kujutab endast graafiliste kujundite kogumit, neid kujundeid nimetavad süsteemi loojad kostüümideks (costume). Kui sprait on nähtav, siis on nähtav üks selle kostüümidest (kujutistest). Vahetades skriptide abil teatud sagedusega kostüüme ja/või muutes ka spraidi asukohta, saab tekitada erinevaid animatsiooniefekte: tantsimine, käimine, lendamine jmt. Kostüüme saab kasutada ka muul otstarbel. Oma olemuselt ja ka käsitluselt on kostüümid samased lava taustadega. Paneme tähele, et kostüümidel ja taustadel on ühesugune valik omadusi ja meetodeid. Teatud erinevused tulenevad kasutamise eesmärkidest ja sisulisest tähendusest (semantikast).
Spraidi geomeetrilised omadused on seotud lava koordinaatsüsteemiga. Asukoht määratakse keskkoha koordinaatidega (x ja y) lava telgede (X, Y) suhtes. Pööret ja liikumise suunda arvestatakse Y‑teljest, positiivne nurk on päripäeva. Nurga ühikuks on kraad. Spraitide ja kostüümide lisamine ja redigeerimineSpraite ja kostüüme saab lisada, redigeerida ja eemaldada projekti loomise faasis. Skriptide abil neid tegevusi täita ei saa. Spraite võib valida Scratchiga spraitide teegist (hoidlast) või oma kaustades olevates failidest. Sprait koosneb algselt ühest või mitmest graafilisest kujundist ehk kostüümist. Scratchist eksporditud spraidi juurde võivad kuuluda ka skriptid. Spraitide loomiseks võib kasutada PNG, GIF, JPG, BMP ning animeeritud GIF faile. Spraite (kostüüme) saab joonistada joonistusredaktori abil ka ise. Viimasega saab muuta ja täiendada ka olemasolevate spraitide kostüüme.
Sees saab olla ainult üks neist. Vaikimisi on sees pööramisstiil suvaline.
Pööramise stiil avaldab mõju ka käskude [kui äärel põrka], [pööra ...] ja [osuta ...] täitmisele. Kui pööramisstiil on ei pöördu, siis need käsud ei muuda vastava spraidi suunda. Kui stiil on vasakule-paremale, võib, sõltuvalt määratud suunast (nurgast) toimuda ainult peegeldus. Kostüüm kujutab endast antud spraidi "teisikut", millel on teine väljanägemine. Spraidi kostüüme, kui neid on mitu, saab vahetada. Seda kasutatakse eeskätt animatsiooni efekti loomiseks.
Uue kostüümi loomiseks saab kasutada nuppe:
Pilti saab lohistada ka vebist, kaustadest või töölaualt. Algselt olid kostüümid mõeldud mitmesuguste animatsiooniefektide loomiseks: jooksmine, tantsimine jmt. Kuid nad leiavad kasutamist mitmete teiste tegevuste esitamiseks. Animeeritud GIF-failide kasutamine spraitidena
|
Animeeritud GIF-failid leiavad juba ammu laialdast kasutamist animeeritud piltide lisamiseks teatud tüüpi dokumentidesse, eeskätt esitlustesse ja veebidokumentidesse, kus nad hakkavad „elama“. Taolisi faile on Internetis tuhandeid ja neid saab vabalt alla laadida. Animeeritud GIF fail koosneb, nagu Scratchi sprait, mitmekihilisest kujundite kogumist, mis lisatuna Scratchi projekti, jaguneb kostüümideks.
Faili lisamine Scratchi toimub veidi omapäraselt. Kõigepealt peab panema või joonistama lavale ühe suvalise spraidi, mille kostüümiks on suvaline graafikafail mõnes Scratchis lubatud formaadis. Selle võib näiteks teha joonistamisredaktoriga või lisada teegist. Seejärel peab importima selle kostüümide hulka käsuga "Kostüümi lisamine failist" animeeritud GIF-faili, mis automaatselt jaguneb kostüümideks. Esialgu lisatud spraidi kostüüm(id) on esimene(sed), selle peab eemaldama. |
1) Objekt seisab paigal |
3) Objekt imiteerib ringliiklust |
Ülal on toodud näited animeeritud GIFi kasutamisest HTML-dokumenis. Objekti saab panna "elama" Scratchis skriptiga, mis lihtsalt vahetab teatud sagedusega kostüüme (vt esimene näide). Scrtchis saab objekti lihtsalt panna ka liikuma edasi-tagasi või imiteerima ringliiklus (skriptid kaks ja kolm). |
Iga sprait saab kasutada joonistamiseks pliiatsit. Pliiatsi omadused ja meetodid on toodud alloleval skeemil. Joonistamisel kasutatakse alati grupi Liikumine käske: liigu, pööra, mine jm. Kui pliiats on all, jätab see liikumisel joone. Võib öelda, tt liikumise käsud kuuluvad pliiatsi meetodite hulka.
Allpool on toodud näiteks skript, mis joonistab ruudu ning jätab selle nurkadesse Krapsu jäljendi.
|
Heliklipid võivad olla seotud spraitidega ja lavaga. Objektid luuakse helifailidest. Kasutakse WAV ja MP3 vormingus faile. Scratchiga teegis on komplekt helifaile, mille hulgast saab importida klippe. Võib kasutada oma helifaile nimetatud vormingutes.
Kui arvutiga on ühendatud mikrofon, võimaldab Scratch lindistada oma juttu ja muid helisid.. Scratchis on efektiivsed ja mugavad vahendid helide, sh kõne, lindistamiseks, redigeerimiseks ja esitamiseks. Kõik heliklippidega seotud tegevused tehakse loomise faasis. Heliklippe saab käivitada grupi Heli käskudega: [mängi heli nimi], [mängi heli nimi kuni valmis]. [mängi heli ...] käivitab nimega määratud klipi ja skripti töö jätkub kohe. [mängi heli ... kuni valmis] puhul mängitakse klipp lõpuni ja alles siis jätkub skripti töö. Käsuga [peata kõik helid] saab lõpetada helide mängimise. |
Neid seadmeid kasutatakse eeskätt sündmuste tekitamiseks ning vastavate skriptide käivitamiseks. Vastavad tarkvaraobjektid teevad kindlaks hiire klõpsud ja vajutused klahvidele ning võimaldavad kasutada nende seadmetega seotud omadusi: hiirekursori koordinaadid, hiire olek (nupp all või mitte), klahvile vastav sümbol (täht, number või muu). Allpool on toodud mõned näited, milles kasutatakse erinevaid sündmusi ja objektide omadusi.
Hiiresündmus |
|
Hiiresündmus ja klahvide kasutamine |
|
Klahvisündmus |
|
Klahvisündmus ja hiire omaduste kasutamine |
|
Klahvisündmus ja hiire oleku kasutamine |
Taimerit saab kasutada jooksva aja kuvamiseks, rakenduste ja ülesannete täitmise aja kindlaks tegemiseks, mängude, testide ja muude tegevuste aja määramiseks. Taimeril on ainult üks omadus: jooksev aeg, mille saab viia algseisu käsuga (meetodiga) [taimer algseisu].
Auto liigub lava vasakust servast parema servani juhusliku sammuga h (2 .. 10). |
Järgnevad skriptid demonstreerivad taimeri kasutamist täitmise aja kontrollimiseks.
Korrutustabeli trenn. Eesmärgiks on lahendada võimalikult rohkem ülesandeid etteantud aja jooksul. |
Andurid võimaldavad saada informatsiooni mõnede sündmuste ja objektide omaduste kohta. Nende kasutamine toimub gruppi Andurid kuuluvate käskude kaudu.
Käivitatakse käskudega: <puudutab objekt>, <puudutab värvi …> ja <värv … puudutab värvi ..>. Teevad kindlaks sündmused: antud objekt (mille skriptis esineb vastav käsk) puudutab teist objekti, objekt puudutab teise objekti või lava määratud värviga osa, või antud objekti määratud värviga ala puudutab teise objekti või lava määratud värviga osa.
Näide. Lava ülemises servas liigub edasi-tagasi värviline märklaud. Kasutaja üritab tabada seda lava alumises servas asuva noolega. Nool läheb lendu, kui vajutatakse klahvile tühik. |
||
Noole lendu juhtiv skript on jagatud kahte ossa. Põhiskript hakkab tööle, kui vajutatakse klahvi tühik. See suurendab noole y‑koordinaati ja kontrollib kahte tingimust. |
||
Vasakpoolne skript juhib märklaua edasi-tagasi liikumist. |
Kauguse andur võimaldab teha kindlaks antud spraidi kauguse teisest spraidist (vt näide). Omaduste andur võimaldab spraidi või lava skriptil saada teada antud spraidi omaduste ja lokaalsete muutujate väärtusi. Selleks kasutatakse grupi Andurid plokki <omadus kujundil sprait>. Kättesaadavad on järgmised omadused: x, y, suund, kostüümi #, suurus, helitugevus. Spraidi skriptis võib saada teada lava tausta numbri. Käsk omistab muutujale XP spraidi pall omaduse x väärtuse (x-koordinaat).
Näide. Kraps jalutab palliga edasi-tagasi. Pall pöörleb vastavalt liikumise suunale. Krapsu teel on kast. Kui Kraps jõuab kasti lähedusse, hüppab ta sellest üle.
Krapsu skriptis käivitab käsk [teata Tule] palli vastava skripti. See viib palli Krapsu juurde, positsioneerib ja määrab selle pöörlemise suuna, arvestades Krapsu liikumise suunda. Viimane tehakse kindlaks omaduste anduri abil, kasutades plokki [suund kujundil Kraps]. Väärtus omistatakse muutujale s, seda kasutatakse antud skripti kui-plokis ja ka skriptis Mine.
Krapsu skripti kui-plokis kontrollitakse pidevalt kaugust kastist. Kui see saab väiksemaks 40‑st, käivitab käsk [teata Hyppa] vastava Krapsu skripti. Enne hüpet käivitab Kraps käsuga [teata Mine], palli skripti, mis viib palli kastist mööda. Skriptis kasutatakse muutuja s väärtust, mille fikseerib skript Tule. Peale hüpet käivitab Kraps kasti asukoha muutmise skripti Muuda, milles kasutatakse Krapsu ja palli omadust x asukoht.
Kraps |
Pall |
Kast |
Neid objekte vaadeldakse eraldi materjalides: Muutujad, Skriptid ja Loendid