Pühapäev, 2. november 2014

7. tund - skriptide omavaheline suhtlus (teated)

Praeguseks oleme selgeks õppinud, et tegelastele (spraidid) ja taustadele saab lisada skripte. 
Täna vaatame, kuidas saavad erinevad skriptid (ka erinevate tegelaste skriptid) omavahel suhelda ehk kuidas ühe skripti abil käivitada teist.

Selleks tuleb kasutada teateid. Leiad need "Sündmuste" alajaotusest
Skripti käivitamiseks võib olla ka teade teiselt skriptilt (selle ploki kuju on sarnane neile käivitusplokkidele, mille leiad samuti sündmuste alt).

teata ... ja oota käsuplokk saadab teate välja ja ootab seni, kuni teine skript on oma tegevuse lõpetanud ning jätkab siis programmiga.

Kui jätkame eelmisel tunnil alustatud parooli küsimise programmiga, siis täna võiks sellele lisada uue tegelase, kes ilmub peale õige parooli sisestamist (tantsimine või kostüümivahetus võib jääda).

Ülesanne 1
Lisa oma programmi tegelane, kes ilmub peale teise tegelase mingit tegevust (enne peaks olema peidetud), näiteks parooliküsimist.

Ülesanne 2
Pane tegelased omavahel suhtlema nii, et mõlema tegevust määraks skripti poolt välja saadetud erinevad teated. 

Proovime valmis saada sellise programmikese, nagu siin allpool (parool on 123):


Spikker
Kassi skript saadab peale õige parooli sisestamist teate draakoni skriptile (teata tulevalja)

Draakon peaks olema alguses peidus, selleks võiks panna rohelise lipu klõpsamise alla Välimuse alt leitava käsu "peida".
Edasi tuleb draakonile skript, mis alustab tööd peale kassilt teate saamist.
Kui sprait on programmi lisades alguses vale pidi (draakon on seljaga kassi poole), siis kõige lihtsam on tema kostüüm teist pidi keerata. Selleks klõpsa lahti kostüümid ja leia paremast ülanurgast peegeldamise nupp 


Kui tahad, et draakon ka tuld purskaks, siis pead talle vastavad kostüümid ise joonistama ning lisama skripti kostüümivahetus (näiteks korda 10 korda ja siis erinevad kostüümid, peale kordust võtab draakon oma esialgse, ilma tuleta kostüümi, tagasi).

Teate "kassivastus" peale peaks kass teatama, et tema draakonit ei karda.

Kui soovid, et kass draakonit ründaks, lisa kassivastuse skriptile veel allolev lõik
Selleks, et draakon peale rünnakut kukuks ja "kaoks", tuleb talle lisada järgmine skript