Interakcijos
Interakcijos suteikia jūsų projektui smagumo. Taip pat tai labai praturtina mokymosi procesą. Todėl mes išmoksime įgyvendinti interakcijas naudodami CoBlocks. Pradėsime nuo paprastų interakcijų, padarydami, kad pasaulis reaguotų į jūsų veiksmus. Vėliau išmoksime kai kurių su programavimu susijusių dalykų.
- Переглянути
6. Logikos realizavimas
Mes jau daug ko išmokome, bet dar neišmokėme savo programos svarbiausio dalyko – mąstyti! Mūsų programa turi priimti sprendimus. Ji turi įvertinti įvairias sąlygas ir situacijas:
- Ką daryti, jei šuniukas surastas?
- Ką daryti, jei spustelėjus duris, jos uždarytos?
- Ką daryti, jei radome šuniuką ir kalbame su mergaite?
Tai tik kelios galimos sąlygos, kurias mūsų programa gali įvertinti. „Control“ („Valdymas“) skyrius skirtas tokioms sąlygoms apdoroti. Jis apima ne tik sąlygų apdorojimą. Šiame skyriuje rasite ciklų, lygiagretumo ir kitų struktūrų. Šį kartą aptarsime tik sąlygų apdorojimą, kuris yra „if“ skyriuje.
Atliksime kažką paprasto. Kai spustelėsite duris, jei bokšto durys bus atidarytos, mes jas uždarysime. Kitu atveju, jei durys uždarytos – mes jas atidarysime :)
Kad žinotume, ar durys šiuo metu yra atidarytos ar uždarytos, sukursime kintamąjį, pavadintą „door_is_open“ („durys_atidarytos“) ir priskirsime jam reikšmę „True“, nes bokšto durys iš tiesų yra atidarytos. Kintamųjų blokai yra skiltyje „Data“:

Taigi, pirmiausia suraskite bloką „set variable“ („apibrėžti kintamąjį“) duomenų skyriuje. Nutempkite jį į pačią pradžią. Pakeiskite kintamojo pavadinimą iš „myVar“ į „door_is_open“ ir pakeiskite reikšmę iš „false“ į „true“.
Kadangi mes atidarinėsime ir uždarinėsime bokšto duris, turime padaryti bokštą prieinamą mūsų programai. Tai galite padaryti įprastu būdu – kontekstiniame meniu pasirinkite „Code“ ir įjunkite „Use in CoBlocks“. Po to patikrinkite, kokias animacijas turi bokštas.
Pažymėkite bokštą, kad blokų operacijos būtų susietos su juo, ir pridėkite bokšto spustelėjimo įvykį į programą, kaip darėte ankstesnėje pamokoje.

Dabar turime pridėti kodą, kuris patikrins, ar durys yra atidarytos. Jei taip (durys atidarytos) – jas uždaryti, jei ne – jas atidaryti. Tai galima padaryti dviem būdais. Pabandysime abu.
Pirmuoju atveju mes tik uždarysime duris ir naudosime bloką if, kuris yra pirmasis blokas kontrolės skyriaus „if“ kategorijoje. Atidarykite skyrių „Control“ ir raskite kategoriją „if“. Nutempkite pirmąjį bloką į naujai sukurtą įvykį.

Dabar turime pakeisti sąlygą, kuri kol kas nėra tinkama (1 < 2). Mums reikia sukurti sąlygą, tokią kaip ši:
Jei durys yra atidarytos, jas uždarykite.
Verčiant tai į blokų kalbą, tai atrodys taip:
Jei door_is_open reikšmė yra lygi true, tada priskirte bokštui animaciją Open.
Taigi, vietoj skaičiaus 1 turime nurodyti kintamąjį door_is_open. Pakeiskite mažiau ženklo simbolį į lygybę. Ir pakeiskite skaičiaus du reikšmę į true. Paprasčiausias būdas pakeisti ženklą – spustelėti ant jo ir pasirinkti lygybę iš išskleidžiamojo sąrašo.
Duomenų („Data“) skyrius yra susijęs su kintamaisiais ir jų reikšmėmis. Spustelėję šį skyrių, pamatysite kintamuosius ir jų galimas reikšmes. Čia jums reikia surasti kintamąjį door_is_open ir nutempti jį į vietą, kur anksčiau buvo skaičius vienas. Tada suraskite loginio tipo reikšmę „false“ ir nutempkite ją į skaičiaus 2 vietą. Kadangi tikriname, ar durys yra atidarytos, pakeiskite reikšmę „false“ į „true“.

Dabar mums tereikia pakeisti bokšto animacijos būseną į uždarytas duris („Closed“). Tai padaryti galite naudodami bloką „set animation“ iš veiksmų skyriaus.

Kol kas įgyvendinome tik vieną variantą – kai durys atidarytos ir jas reikia uždaryti. Reikia padaryti kitą variantą – atidaryti duris, kai jos uždarytos. Ir atvirkščiai. Ir čia mes pasitelksime antrąjį būdą – naudodami bloką „if ... else“.
Nutempkite šį bloką (jis yra antrasis blokas valdymo skyriaus „if“ kategorijoje). „if“ dalis bus visiškai tokia pati. Tada nurodykite animacijos būseną, jei sąlyga yra įvykdyta, ir else dalyje – jei sąlyga neįvykdyta. Kai atidarome duris, reikia pakeisti mūsų kintamojo door_is_open būseną arba reikšmę: kai uždarome – į „false“, kai atidarome – į „true“. Galiausiai turėtumėte gauti tokį kodą (ištrinkite mūsų pirmąjį if bloką).

Paspauskite „Play“, palaukite, kol šuniukas nubėgs už bokšto, ir pabandykite uždaryti, o tada atidaryti duris.