Programmēšanas vide jebkuram skolēnam – Scratch multimediju iespējas jeb datorprogrammēšanas pamati II dažās stundās. E-grāmata, autors: Imants Gorbāns

Šis ir otrais konspekts LU DF projekta “Jauno datoriķu skola” (JDS) ietvaros. Ja pirmajā konspektā tika aplūkoti Scratch pamati, tad šajā konspektā galvenais akcents ir vērsts uz Scratch 2.0 multimediju iespējām – darbu ar mikrofonu un tīmekļa kameru (Webcam).

2. Tīmekļa kameras lietošana Scratch 2

Otra multimediju iespēja ir tīmekļa kameras jeb “webkameras” lietošana Scratch 2 programmās. Šī iespēja ir ļoti jaudīga, jo ļauj veidot pat spēles, kurās spēlētājam ir fiziski jākustas. Var izveidot programmu, kas ir mazliet līdzīga Microsoft Xbox 360 vai Xbox One ar Kinect konsoli spēlēm. Kaut, protams, ar Scratch iespējamais rezultāts šeit ir pieticīgāks nekā profesionāļu veidotas spēles, milzīga nozīme ir iespējai izveidot ko radoši savu. Citās skolās izmantojamās programmēšanas valodās tik vienkārši ar mikrofonu un videokameru darboties nav vai, tipiski, vispār nav iespējams.

Tīmekļa kameras izmantošanas idejas saprašanai, aplūkosim vienkāršu programmiņu http://scratch.mit.edu/projects/23712067/, kas rediģēšanas skatā nonāk pēc “See inside” nospiešanas: http://scratch.mit.edu/projects/23712067/#editor. Šai programmiņai būtiski, ka daļa koda ir gariņam, bet daļa – fonam jeb skatuvei. Tā kā man trūkst talanta uzzīmēt lidojošu cūku, izvēlējos no Scratch piedāvājuma lidojošu begemotu, vai arī nīlzirgu, šī gariņa kods dots 2. attēlā. Dažādībai 2., 3. attēls ir ņemts no programmas redaktora, kas iestatīts angļu valodā, bet 4., 5. att. - tas pats kods pēc redaktora pārslēgšanas latviešu valodā.

Begemota kods
2. att. Nīlzirga gariņa kods.
 

Kā redzams 2. attēlā, vispirms novietojam nīlzirga gariņu izvēlētajā sākumstāvoklī, tad iedarbinām ciklu (to var pārtraukt ar sarkano pogu). Gariņa kustības organizēsim ar zarošanās operatoru “ja-tad-citādi” jeb “if-than-else”, sakot: ja video ir kustība uz/zem gariņa vairāk kā 9 sīknotikumiem (izvēlamies eksperimentāli, lai nereaģē uz fona “troksni”), tad darām kaut ko. Tas kaut kas ir “set y to 100:, kas liek nīlzirgam palēkties. Pirms nokrišanas liekam gariņam 1 sekundi karāties gaisā, lai darbības nenotiek tik ātri, ka videokarte nespēj labi parādīt un acs saskatīt. Operatora “if-than-else” blokā zem “else” būs pastāstīts, ko darīt, ja nav detektēta video kustība, šajā gadījumā ir likts nīlzirgam mazliet lēkāt uz vietas, kā gatavojoties lielajam lēcienam.

Tomēr, lai iepriekšējā rindkopā aprakstītais strādātu, Scratch ir jāredz video, no kura detektēt kustību. Ir izdomāts šo video rādīt fonā, jeb uz skatuves. Video liekam par 50% caurspīdīgu (ja video redzams uz ekrāna, varam saprast, ka kamera strādā), var pat pilnībā caurspīdīgu, galvenais, lai tas tehniski tur būtu, kodu skat. 3. attēlā. Kāpēc tā? Nu tāpēc, ka Scratch izstrādātāji tā ir paredzējuši darbu ar video, kas ir vienkāršākais iespējamais variants. Vai video blokus vārēja likt gariņam, ne skatuvei? Vispār jau jā, darbosies arī tā, bet tas nebūs optimāli, jo tad visai lielus datora resursus tērējošās video lietas slogos gariņu. Tas var traucēt gariņa darbībai gara koda gadījumā, piemēram, spēlēs. Labāk vienam objektam (gariņam) nelikt tērēt lielus resursus, bet šo slodzi sadalīt starp vairākiem objektiem, šoreiz šis otrs objekts ir skatuve. Ja video nedarbojas, vēlreiz izlasām šī konspekta priekšvārda pēdējo rindkopu un atrisinām ārpus Scratch esošo problēmu.

Begemota video fona kods
3. att. Fona jeb skatuves kods, kurā izsauc tīmekļa kameras video.