Interakcijos

Svetainė: KTU atvirieji mokymai
Kursas: Skaitmeninio turinio kūrimas
Knyga: Interakcijos
Spausdino: Svečio paskyra
Data: sekmadienis, 2026 rugsėjo 20, 17:23

Aprašas

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ų.

1. Programavimo režimo pasirinkimas

CoSpaces aplinka siūlo keletą programavimo režimų, kurie leidžia naudotojams kurti interaktyvias ir įtraukiančias virtualias aplinkas. Šie režimai skirti įvairiems naudotojams, nuo pradedančiųjų iki pažengusių programuotojų, leidžiant jiems įgyvendinti savo idėjas. Aptarkime pagrindinius programavimo režimus, kuriuos galima naudoti CoSpaces platformoje. Štai kokie režimai naudojami CoSpaces aplinkoje:

Blokelių režimas (CoBlocks):

  • Vizualinė programavimo kalba: Šis režimas naudoja vizualinę programavimo kalbą, nuo kurios dažniausiai startuoja pradedantieji. Komandos yra teikiamos blokuose, kuriuos reikia sujungti norint įgyvendinti idėją. Tai panašu į Scratch ir puikiai tinka tiems, kurie nori naudoti vizualinį programavimą arba anksčiau dirbo su Scratch.
  • Adaptacija: Puikiai tinka padėti mokiniams suprasti programavimo koncepcijas, nereikalaujant rašyti tikro kodo. Tai ypač svarbu mokiniams ir klasėms, kur programavimas nėra pagrindinis dalykas.
  • Sudėtingumas: Naudotojai gali lengvai aktyvuoti animacijas, valdyti objektus ir reaguoti į įvairius įvykius, naudodamiesi iš anksto nustatytais blokais. Tai leidžia lengvai kurti interaktyvias istorijas, žaidimus ir simuliacijas.

JavaScript režimas (TypeScript)

  • Tekstinis programavimas: Šis režimas naudoja labai populiarią tekstinio programavimo kalbą - JavaScript, tiksliau sakant, šios kalbos versiją TypeScript. Šis režimas yra galingesnis ir lankstesnis, leidžiantis įgyvendinti sudėtingesnes idėjas.
  • Adaptacija: Pažengę naudotojai gali įgyvendinti sudėtingesnes interakcijas, pasinaudodami visu CoSpaces potencialu. Tai apima funkcijų kūrimą, kintamųjų valdymą ir API integravimą.
  • Sudėtingumas: Ši kalba nėra tokia paprasta kaip CoBlocks ir labiau tinka tiems, kurie turi šiek tiek patirties tekstinio programavimo kalboje. Kita vertus, ji puikiai tinka tiems, kurie jau peržengė vizualinio programavimo ribas ir ieško naujų iššūkių.

Python režimas (Python)

  • Tekstinis programavimas: Šis režimas taip pat naudoja labai populiarią tekstinio programavimo kalbą – Python. Kaip ir JavaScript, šis režimas yra galingesnis ir lankstesnis, leidžiantis įgyvendinti sudėtingesnes idėjas. Ši kalba buvo įtraukta į CoSpaces platformą, nes Python naudojama daugelio mokyklų ir universitetų programose visame pasaulyje.
  • Adaptacija: Kaip ir JavaScript, pažengę naudotojai gali įgyvendinti sudėtingesnes interakcijas, pasinaudodami visu CoSpaces potencialu.
  • Sudėtingumas: Ši kalba nėra tokia paprasta kaip CoBlocks, bet yra lengvesnė nei JavaScript. Ji puikiai tinka tiems, kurie mokosi Python mokykloje ar universitete, arba tiems, kurie nori išmokti perspektyvią programavimo kalbą, su kuria susidurs ateityje.

Taigi, kokį programavimo režimą ar kalbą pasirinkti? Tai priklauso nuo jūsų ar jūsų mokinių patirties. Šiame kurse mes naudosime CoBlocks režimą. Ne tik todėl, kad jį naudojant lengviau pradėti mokytis kuriant interakcijas, bet ir todėl, kad rasite daug daugiau pavyzdžių su CoBlocks nei su kitomis kalbomis tiek CoSpaces platformoje, tiek internete. Tad – pradėkime!

Suaktyvinkime CoBlock programavimo režimą mūsų projekte:

Atidarius projektą ir reikiamą sceną, spustelėkite mygtuką „Code“ ir atsiradusiame lange dešinėje spustelėkite mygtuką „CoBlocks“. Turėtumėte pamatyti šį CoBlocks režimo programavimo langą:

Na, metas rašyti pirmąją programą CoBlocks pasauliui!


1.1. Praktika: programavimo režimo pasirinkimas

Šioje praktikoje atliksime tai, ką darėme pamokoje apie programavimo kalbos pasirinkimą. Tai yra, mes pasirinksime CoBlocks režimą mūsų projektui. Jei tai atlikote per pamoką, galite šį pratimą praleisti.

Taigi, prisiminkime pamoką ir atlikime šiuos veiksmus:

  1. Spustelėkite mygtuką „Code“ ir pasirinkite „CoBlocks“:

  2. Turėtumėte pamatyti programavimo langą dešinėje pusėje:

  3. Štai ir viskas! :) Mes netrukus parašysime savo pirmąją programą.

2. Labas, pasauli!

Mes ruošiamės suprogramuoti šuniuko kelionę sukurtu keliu, bet prieš tai turime parašyti pirmąją programą. Ir ta pirmoji programa vadinasi - „Labas, pasauli!“ („Hello, world!“). Paprastai tai yra pati paprasčiausia programa, kuri nieko nedaro, tik išveda tekstą „Labas, pasauli!“ į konsolę (ar terminalą). CoSpaces aplinkoje mes padarysime taip, kad mūsų mergaitė, sėdinti ant suoliuko, pasakytų „Hello, world!“.

Pirmas dalykas, kurį reikia padaryti, yra padaryti modelius arba kitus resursus prieinamus programavimui. Tai daroma iškviečiant kontekstinį meniu (dešiniuoju pelės mygtuku spustelėkite ant objekto) ir „Code“ skiltyje įjungiant „Use in CoBlocks“:


Padarius tai, objektas (šiuo atveju 3D modelis) tampa paruoštas naudojimui programavime. Dabar atidarykime programavimo aplinką spustelėdami mygtuką „Code“. Tada, kairėje pusėje, raskite mygtuką „Actions“. Tai atidarys veiksmų skiltį. Šioje skiltyje raskite eilutę, skirtą sakymo operacijai (trečia eilutė nuo viršaus) ir vilkite ją šalia bloko „When Play clicked“ („Kai paspaustas Play“).


Iš esmės, mūsų programa jau baigta. Tik Kara (mūsų mergaitė) pasakys „Hi!“. Pakeiskime šį tekstą į „Hello, world!“.


Dabar, panagrinėkime įvestos komandos struktūrą. Pirmiausia, operacija yra susieta su konkrečiu objektu (žr. 1). Šiuo atveju tai yra Kara (tiksliau, jos modelis). Spustelėję šią dalį, galėsite pakeisti ją į kitą objektą. Antroji dalis yra pati komanda. Ji nekeičiama, nes dauguma komandų turi savo formą. Trečioji ir ketvirtoji dalys yra parametrai. Šiuo atveju turime du parametrus: tekstą, kurį reikia pasakyti, ir to teksto rodymo laiką. Įvedant ilgesnį tekstą, žemiau atsiranda teksto įvedimo laukas.

Taigi, mūsų pirmoji programa baigta. Paspauskite mygtuką „Play“ ir pažiūrėkite, ar ji veikia! Eksperimentuokite su kitais tekstais ir jų rodymo laikais!

2.1. Praktika: Labas, pasauli!

Šiame pratime atliksime tai, ką darėme praėjusioje pamokoje kurdami pirmąją programą. Tai yra, parašysime programą, kuri privers mergaitę pasakyti „Hello, world!“ („Labas, pasauli!“). Jei tai atlikote per pamoką, galite šį pratimą praleisti.

Taigi, prisiminkime pamoką ir atlikime šiuos veiksmus:

  1. Padarykite mergaitės modelį prieinamą programavimui (įjunkite „Use in CoBlocks“):

  2. Spustelėkite mygtuką „Code“, tada „Actions“ skiltyje raskite komandą „say“ ir nutempkite jos bloką šalia „When Play clicked“:

  3. Pakeiskite tekstą „Hi!“ į „Hello, world!“, ir nustatykite rodymo laiką 3 sekundes:

  4. Spustelėkite mygtuką „Play“ ir pažiūrėkite, kaip veikia jūsų programa.
  5. Eksperimentuokite! Keiskite tekstą ir laiką.

3. Didysis pabėgimas! (judėjimo keliu programavimas)

Mes beveik išmokome programuoti – sukūrėme savo pirmąją programą! :) Taigi, grįžkime prie šuniuko ir padarykime taip, kad jis bėgtų už namo, kai paspausime mygtuką „Play“.

Pirmiausia, padarome šuniuką prieinamą programavimui įjungdami parinktį „Use in CoBlocks“.


Idėja paprasta – mums tereikia padėti šuniuką ant kelio, o kelias nuves šuniuką jo trajektorija. Ši komanda yra „Transform“ skiltyje (ieškokite „move“ ir „on path“). Suradę perkeliame šią komandą į programavimo langą ir prijungiame ją prie sakymo komandos:

 

CoSpaces nežino, kas turėtų judėti keliu, todėl jis pasirenka pirmą objektą – mūsų mergaitę Karą. Turime ją pakeisti į šuniuką, kitaip Kara bėgs už namo :) Tai darome paspaudę išskleidžiamąjį meniu ir pasirinkę šuniuką („Dog“). Dabar galime išbandyti tai, ką sukonstravome :)

Na, šuniukas laukė, laukė ir... nuslydo už namo! :) Galbūt ne visai realistiška, bet vis šis tas. Jei manote, kad šuniukas slydo per greitai, pakeiskite kelio įveikimo laiką, kuris dabar yra 5 sekundės.

O taip, mes turime padaryti, kad šuniukas bėgtų, o ne slystų :) Ir netrukus tai padarysime mokydamiesi animacijų!

3.1. Praktika: Didysis pabėgimas!

Šiame pratime atliksime tai, ką darėme pamokoje, norėdami, kad šuniukas bėgtų už bokšto. Tai yra, parašysime programą, kuri padaro, kad šuniukas bėgtų už bokšto anksčiau sukurtu judėjimo trajektorijos keliu. Jei tai atlikote per pamoką, galite šį pratimą praleisti.

Taigi, prisiminkime pamoką ir atlikime šiuos veiksmus:

  1. Padarykite šuniuką prieinamą programavimui (įjunkite „Use in CoBlocks“):

  2. Dabar padėkite šuniuką ant kelio naudodami „move ... on path“ komandą iš „Transform“ skilties:

  3. Jei bloke judinamas objektas nėra šuo („Dog“), pasirinkite jį; kitu atveju kitas objektas judės keliu.
  4. Spustelėkite mygtuką „Play“ ir pažiūrėkite, kaip veikia jūsų programa. 
  5. Eksperimentuokite! Pakeiskite judėjimo laiką. Ir... jei norite, pakeiskite objektą :) Tik nepamirškite vėliau jo sugrąžinti!

4. Šuniukas bėga! (animacijų programavimas)

Šį kartą spręsime esminę problemą – reikia, kad šuniukas bėgtų už bokšto, o ne slystų.

Jūs jau žinote, kaip įjungti modelių animacijas, todėl galite tiesiog peržiūrėti šuniuko animacijas ir įjungti bėgimo animaciją („Run“) per meniu:


Tačiau tai neišspręs mūsų problemos, nes tada šuniukas bėgs vietoje nuo pat pradžių, o ne sėdės :) Taigi, padarysime, kad šuniukas iš pradžių sėdėtų, o kai ateis laikas bėgti, programiškai įjungsime bėgimo animaciją, naudodami tam tikrą CoBlocks bloką. Šis blokas yra pats pirmas „Actions“ skyriuje.


Beje, prieš pradėdamas judėti, šuniukas turi būti perjungtas į bėgimo animaciją. Kitaip šuniukas pradės bėgti tik pasiekęs kelio galą. Taigi, įdėkite operacijos bloką tarp „say“ ir „move“ blokų, kaip parodyta aukščiau esančiame paveikslėlyje.

Dar viena svarbi detalė – reikia nurodyti animaciją. Pagal numatytuosius nustatymus ji nustatyta kaip „Don't animate“ (žr. 3). Pakeiskite ją į „Run“ animaciją. Galiausiai kodas turėtų atrodyti maždaug taip:

Paleiskite programą paspausdami mygtuką „Play“. Jei viskas veikia, po to, kai šuniukas nubėgs kelią, jis turėtų atsisėsti. Tikriausiai jau turite idėją, kaip tai padaryti. Tiesiog įdėkite animacijos bloką į pabaigą ir pasirinkite sėdėjimo („Sit“) animaciją.


Išbandykite patys!

4.1. Praktika: šuniuko animavimas

Šiame pratime atliksime tai, ką darėme pamokoje, kurioje animavome šuniuką. Tai yra, parašysime programą, kuri pradės šuniuko bėgimo animaciją prieš jam pradedant bėgti keliu, o kelio pabaigoje išjungsime tą animaciją. Jei tai atlikote per pamoką, galite šį pratimą praleisti.

Taigi, prisiminkime pamoką ir atlikime šiuos veiksmus:

  1. Patikrinkite, kaip vadinasi bėgimo animacija (spustelėkite dešinį pelės mygtuką ant šuniuko ir atsiradusiame meniu, animacijų skiltyje, peržiūrėkite visas šuniuko animacijas):

  2. Pakeiskite šuniuko animaciją prieš jam pradedant judėti keliu. Atidarykite kodavimo skiltį („Code“), tada „Actions“ srityje paimkite pirmąją komandą („set animation of“) ir nutempkite ją prieš judėjimo („move“) komandą:

  3. Jei animuojamas objektas nėra šuniukas, pakeiskite animuojamą objektą į šuniuką, o animacijos pasirinkimo skiltyje (pradžioje „don't animate“) parinkite bėgimą („Run“):

  4. Įdėkite tą pačią komandą į pačią pabaigą, tačiau šuniukui vietoje bėgimo animacijos parinkite sėdėjimo animaciją:

  5. Paspauskite mygtuką „Play“ ir pažiūrėkite, kaip veikia jūsų programa. 
  6. Eksperimentuokite! Parinkite skirtingas animacijas – tai gali būti juokinga, bet vis tiek smagu :) Tik nepamirškite vėliau visko grąžinti į vietą!

5. Įvykiai

Kaip jau minėta, CoSpaces leidžia kurti interaktyvius ir dinamiškus projektus, kurie reaguoja į vartotojo veiksmus, tokius kaip pelės ar klaviatūros mygtukų paspaudimai. CoSpaces gali reaguoti ne tik į vartotojo inicijuotus įvykius, bet ir į įvykius, vykstančius scenoje. Pavyzdžiui, kai susiduria du trimačiai modeliai. Dabar išmoksime naudoti CoSpaces įvykius, kurie yra būtini norint suprogramuoti bet kokius interaktyvius elementus.

Yra atskira skiltis, skirta įvykiams, vadinama „Events“ („Įvykiai“). Atidarius šią skiltį, pamatysite pagrindinius įvykių tipus, kuriuos minėjau anksčiau: pelės mygtuko apdorojimas („clicked“, „hovered“), klaviatūros mygtuko apdorojimas („key ... pressed/up/down“) ir susidūrimas („collision“ kategorija).

Mūsų mergaitė Kara susidūrė su liūdna situacija – jos šuniukas pabėgo :( Taigi, turime jai padėti! Mergaitė liūdi, todėl mes prieisime prie jos ir paklausime, kas nutiko, paspausdami ant jos pelės mygtuku. Turime žinoti, kada mergaitė paspaudžiama pelės mygtuku ir padaryti, kad ji sakytų: „Šuniukas pabėgo, padėk man jį surasti!“.

Spustelėkite mergaitę kairiuoju pelės mygtuku, kad ją parinktumėte. Tada atidarykite programavimo skiltį, jei ji dar nėra atidaryta. Programavimo skiltyje parinkite įvykių kategoriją („Events“). Suraskite komandą („when Kara is clicked“). Tai bus pati pirmoji komanda įvykių kategorijoje. Dabar nutempkite šią komandą į programos pabaigą:


Šiuo būdu į programą pridėjome pelės paspaudimo įvykį, tačiau pats įvykis dar nėra apdorojamas. Kaip matote, įvykio blokas yra tuščias. Užpildysime jį komanda „say“ („sakyti“). Nes ją jau mokame naudoti. Parinkite veiksmų skiltį ir nutempkite komandą „say“ į įvykio bloką.


Po komandos „say“ įtraukimo pakeiskite tekstą. Aš parašiau: „Šuniukas pabėgo. Prašau, padėk jį surasti!“.

Viskas. Paspauskite „Play“, palaukite, kol šuniukas nubėgs už bokšto, ir tada spustelėkite mergaitę kairiuoju pelės mygtuku.

5.1. Praktika: įvykiai

Šiame pratime atliksime tai, ką darėme pamokoje apie įvykių programavimą. Tai yra, sukursime programą, kurioje mergaitė paprašys pagalbos, kai naudotojas paspaus ant jos kairiuoju pelės mygtuku. Jei tai atlikote pamokoje, šį pratimą galite praleisti.

Taigi, prisiminkime pamoką ir atlikime šiuos veiksmus:

  1. Paspauskite ant mergaitės kairiuoju pelės mygtuku, kad ją parinktumėte. Tada atidarykite programavimo skiltį, jei ji dar nėra atidaryta.

  2. Programavimo skiltyje parinkite įvykių kategoriją („Events“). Suraskite komandą („when Kara is clicked“). Tai bus pati pirmoji komanda įvykių kategorijoje. Dabar nutempkite šią komandą į programos pabaigą:

  3. Parinkite veiksmų skiltį ir nutempkite komandą „say“ į įvykio bloką:

  4. Po komandos „say“ įtraukimo pakeiskite tekstą. Aš parašiau: „Šuniukas pabėgo. Prašau padėk jį surasti!“.
  5. Paspauskite „Play“ ir pažiūrėkite, kaip veikia jūsų programa. Atminkite, kad įvykis taps aktyvus po to, kai šuniukas nubėgs už bokšto. Taip mes suprogramavome (įvykis yra paskutinė komanda).

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.

6.1. Praktika: logikos realizavimas

Šioje praktikoje padarysime tai, ką darėme pamokoje, kurioje išmokome įgyvendinti programos logiką. Tai yra, parašysime programą, kurioje, kai paspausime ant atidarytų durų, jos užsidarys. Ir atvirkščiai. Jei tai padarėte per pamoką, galite praleisti šį pratimą.

Taigi, prisiminkime pamoką ir atlikime šiuos žingsnius:

  1. Paspauskite ant bokšto kairiuoju pelės mygtuku, kad jį parinktumėte. Padarykite bokštą prieinamą programavimui, įjungdami „Use in CoBlocks“.

  2. Programavimo skiltyje parinkite „Events“ sritį. Suraskite komandą („when Medieval tower is clicked“). Tai bus pati pirmoji komanda įvykių kategorijoje. Dabar nutempkite šią komandą į programos pabaigą:

  3. Sukurkite kintamąjį door_is_open ir priskirkite jam reikšmę „true“.
  4. Valdymo skyriuje suraskite if ... else bloką ir nutempkite jį į bokšto paspaudimo įvykio lauką.
  5. Užpildykite if ... else bloko laukus taip, kaip mes išmokome praeitoje pamokoje. Turėtumėte gauti tokią programą:

  6. Paspauskite „Play“ mygtuką ir pažiūrėkite, kaip veikia jūsų programa. Atminkite, kad įvykis taps aktyvus, kai šuniukas nubėgs už bokšto – kaip mes tai suprogramavome.

7. CoBlocks blokai

Kol kas mes išbandėme įvairius blokus, tačiau galbūt pastebėjote, kad yra daug kategorijų ir blokų. Mes neaptarėme visų jų, nes norėjome parodyti esminius dalykus. Dabar apžvelgsime kitas blokų kategorijas, tačiau nesijaudinkite – nebūtina jų visų išmokti. Svarbiausia žinoti, kur rasti reikiamus blokus, kai to prireiks.

Beje, jei nematote visų toliau išvardytų kategorijų, tai gali būti dėl to, kad turite įjungtą supaprastintą blokų peržiūros režimą. Galite tai pakeisti, spustelėdami mygtuką „Settings“ blokų kategorijų apačioje ir pasirinkdami „Advanced CoBlocks“.


Taigi, aptarkime visas blokų kategorijas:

Transform (transformacijos): Blokai, leidžiantys keisti objektų erdvines savybes, tokias kaip padėtis, dydis, pasisukimo kampas ir kiti transformavimo parametrai. 
Actions (veiksmai): Blokai, atliekantys tam tikrus veiksmus, pavyzdžiui, animacijų keitimą, teksto rodymą, testų pateikimą ir pan. 
Events (įvykiai): Blokai, nurodantys, kada programa turėtų reaguoti į tam tikrus įvykius, pavyzdžiui, pelės paspaudimus, klaviatūros mygtukų paspaudimus, objektų susidūrimus ir pan.
Control (valdymas): Blokai, naudojami programos logikos valdymui, įskaitant sąlyginius sakinius (if, if-else), ciklus ir kitas valdymo struktūras.
Operators (operatoriai): Blokai, naudojami skaičiavimams, atliekant matematinės, loginės ir teksto operacijas, taip pat palyginimus ir kitus veiksmus.
Items (elementai): Blokai, susiję su objektų valdymu ir sąveika, pavyzdžiui, kuriant, priskiriant, modifikuojant ir ištrinant objektus.
Data (duomenys): Blokai, leidžiantys kurti ir valdyti kintamuosius ir sąrašus. Šie blokai naudojami informacijai saugoti ir apdoroti.
Functions (funkcijos): Blokai, leidžiantys kurti ir naudoti funkcijas. Funkcijos padeda struktūrizuoti kodą ir atlikti pakartotinius veiksmus. 
Physics (fizika): Blokai, leidžiantys valdyti fizikinius aspektus programoje, tokius kaip gravitacija, susidūrimai ir kiti fizikiniai reiškiniai. 
Debug (derinimas): Blokai, skirti programos derinimui, leidžiantys stebėti ir tikrinti kodą, rasti ir taisyti klaidas.

Mes išmoksime keletą naujų blokų ir praktikuosimės juos naudoti. Kol kas svarbiausia žinoti, kur rasti reikiamus blokus.

7.1. Praktika: paslėptų daiktų žaidimas

Jau išmokome daug dalykų - pakankamai, kad sukurtume mažą paslėptų objektų žaidimą. Naudosime jau sukurtą projektą, bet šiek tiek jį pakeisime, kad nereikėtų laukti, kol mergaitė pradės kalbėti, o šuniukas bėgs už bokšto. Mes padarysime dabartinio projekto kopiją, kad išsaugotume jo ankstesnę versiją, jei norėtumėte toliau eksperimentuoti.

Projekto kopiją galite padaryti savo CoSpaces projekto erdvėje. Norėdami tai padaryti, paspauskite trijų taškų mygtuką ir pasirinkite „Duplicate“. Jei jau tai padarėte arba pradėjote naują projektą, šį žingsnį galite praleisti.


Atidarykite kopijuotą projektą ir ištrinkite skrynią, šuniuką ir jo kelią. Programos kode palikite tik eilučių, susijusių su įvykiais – kas žino, gal paslėpsite objektą už uždarų durų :)


Paslėpkite tris daiktus, kuriuos mergaitė pametė parke. Pavyzdžiui, aš paslėpiau knygą, nešiojamąjį kompiuterį ir dviratį. Kaip tai galėjo atsitikti? Paprastai: mergaitė atvyko su dviračiu ir, būdama išsiblaškiusi, nepastebėjo, kad jį padėjo šalia bokšto. Ji dirbo su nešiojamuoju kompiuteriu medžių pavėsyje, o vėliau nuėjo skaityti knygos. Svajodama ji atsisėdo ant suoliuko, o kai sugrįžo į realybę, pradėjo ieškoti savo daiktų. Neįtikėtina istorija? Galbūt, bet mokymuisi tinka :) Tačiau, kaip žinote, istorija tikrai svarbi!

Aš paslėpiau knygą, nešiojamąjį kompiuterį ir dviratį. Galite sugalvoti savo istoriją ir paslėpti kitus daiktus.

Žaidimas vyks taip: pačioje pradžioje, kai dar nėra rastas joks objektas, mergaitė (paspaudus ant jos pele) pasakys, ką reikia rasti. Jei ne visi objektai bus rasti, mergaitė sakys, kad dar ne viskas rasta. O kai visi objektai bus rasti, mergaitė padėkos jums.

Iš šio aprašymo matyti, kad mums reikės kintamojo, kuris saugotų rastų objektų skaičių. Mes jį pavadinsime „found_things“ („rasti_daiktai“) ir priskirsime jam vertę 0 (pačioje pradžioje dar nėra rasta jokių objektų). Tada suprogramuosime visą logiką, susijusią su pokalbiu. Ji bus tokia:

Jei found_things = 0, tada pasakyk "Rask nešiojamąjį kompiuterį, knygą ir dviratį!".
Kitu atveju, jei found_things < 3, tada pasakyk "Dar ne viskas rasta".
Paskutiniu atveju pasakyk "Ačiū, išgelbėjai mane!"

Pažiūrėkite, kaip šie dalykai suprogramuoti CoSpaces aplinkoje (pateikiamas tik logikos kodas):


Paleiskite savo programą ir paspauskite ant mergaitės kairiuoju pelės klavišu. Ji turėtų pasakyti, ką reikia rasti. Eksperimentuokite. Keiskite kintamojo found_things reikšmę ir tada stebėkite, kaip programa reaguoja. Po eksperimentavimo, atstatykite kintamojo reikšmę (0).

Dabar padarysime taip, kad paspaudus objektą kairiuoju pelės klavišu, jis išnyks ir padidins rastų objektų kintamojo reikšmę vienetu. Tam naudosime bloką iš duomenų skyriaus „change ... by“ („pakeisti ... per“). Tuo tarpu, norėdami ištrinti objektą, naudosime bloką „delete“ („ištrinti“) iš elementų (Items) skyriaus.

Kodas, skirtas dviračio radimui, atrodo taip:


Remdamiesi tuo pačiu principu, sudėliokite kitų objektų aptikimo kodą.

Viskas - jūsų žaidimas sukurtas! :)

8. Papildomai: kiti programavimo būdai

Mes šiek tiek išmokome programuoti, tačiau tai tik pradžia. Jei norite daugiau pasigilinti į programavimą, peržiūrėkite šiuo video. Jie išplės jūsų supratimą apie tai, kokias technikas galime pasitelkti programuodami CoSpaces sprendimus.

CoBlocks - Pagrindai

CoBlocks - Darbas su kintamaisiais

CoBlocks - Sąrašų naudojimas

CoBlocks - Funkcijų naudojimas

CoBlocks - Susidūrimų programavimas

AR projekcijų derinimas