Nem akármilyen hét köszöntött ránk, ugyanis április 4 és 8 között rendezik az első Digitális Témahét programját, amely keretén belül országszerte több száz általános és középiskolában jelenhetnek meg a modern digitális eszközök és szolgáltatásokat az oktatás részeként. A HelloWorld oktatási mozgalmunkkal mi is csatlakoztunk az Emberi Erőforrások Minisztériuma által kiírt kezdeményezéshez, a hét folyamán megosztva a teljes Scratch-suli tananyagunkat, amely segítségével bárki elsajátíthatja a programozás alapjait. Lentebb elolvashatod sorozatunk második részét - ha többre vágysz, gyere vissza holnap is, vagy látogasd meg Robotprogramozó táboraink valamelyikét.
Az idei nyár sem maradhat HelloWorld tábor nélkül! Milyen lesz? Vegyétek a tavalyit, és szorozzátok meg kettővel :) Új helyszínnel, új programokkal és tananyagokkal készülünk. Velünk tartotok?
Közzétette: HelloWorld – 2016. március 3.
Hatalmas segítséget nyújt az MIT megalkotta Scratch a programozás alapjainak elsajátításában; játékos módon képes lefektetni az algoritmikus gondolkodás alapjait. Mivel szerencsére nem kell hosszas kódsorokat és az életre hívásukhoz használható utasításokat memorizálnunk digitális alkotásaink létrehozásához, a készítés folyamata lényegesen lerövidíthető. Már néhány perces munkát követően is látványos eredményeket kaphatunk, ha megfelelően variáljuk a szoftver által felkínált blokkokat, ám ha kicsit komolyabb mennyiségű energiát fektetünk apró projektjeinkbe, akár tökéletesen működő alkalmazásokat is készíthetünk.
Éppen ezért döntöttünk úgy, hogy bemutatjuk, milyen egyszerűen megalkothatunk egy régi klasszikus játékot a Scratch használatával. Választásunk a Space Invadersre esett, amelyet kevés idő ráfordításával, könnyedén üres vásznunkra varázsolhatunk, a demprojekt elkészítése közben megalkotott kódrészletek (mint a lövedék újragenerálása vagy az ellenséges objektumok összehangolt mozgatása) pedig később még rendkívül jó szolgálatot tehetnek, mikor saját játékunkon dolgozunk.
Előkészületek
A Scratch telepítését (vagy az online editor megnyitását) követően hozzunk létre egy új projektet, és szabaduljunk meg a képernyőn megjelenő macskafigurától. Ezt követően kezdjük el megtölteni a rendelkezésre álló teret oly módon, hogy felvesszük játékunk három főszereplőjét, egy űrlényt (aki a későbbiekben a célpontunk lesz), saját űrhajónkat, illetve egy lövedéket. Miután a három komponens sikeresen a képernyőre került, el is kezdhetjük programozásukat.
Mivel űrhajónk alapvetően csak egy bizonyos sávban képes a képernyő két széle közötti ingázásra, érdemes vele elkezdenünk a projekt munkálatait. Indulásként helyezzünk el egy startblokkot (zászlóra kattintás) az űrhajó programjában, majd válasszunk kezdőpozíciót az [ugorj] parancs elhelyezésével, és csatoljunk egy [mindig] ciklust készülő utasítássorozatunk végére, ugyanis itt fogjuk majd a lövési utasításokat elhelyezni. Ezek után nincs más teendőnk, mint a jobb és a bal nyilak lenyomását figyelő kezdőblokkokat elhelyezni (elég egyiket megírni, majd a duplikálást követően kiválasztani a legördülő menüből az ellentétes billentyű irányát), majd hozzácsatolni egy [menj néhány lépést] parancsot (természetesen az irányok esetén szükséges előjelváltásokra mindenképp ügyeljünk).
Ezzel a minimális munkával pedig el is értük azt, hogy űrhajónk jobbra-balra képes lépkedni a képernyőn. Persze amennyiben nem szeretnénk, hogy szereplőnk levándoroljon a képernyőről, a mozgatás során további trükkökhöz kell folyamodnunk. Helyezzünk el két vékony vonalat (rajzoljunk egy új szereplőt, és válasszuk a duplázás lehetőséget) a munkaterület jobb és bal oldalára, és a nyilak lenyomásának detektálásakor egy [ha-akkor] ág feltételében jelentsük ki, hogy csupán addig hajthatjuk végre ezt a mozgást, amíg szereplőnk nem érinti az oldalt elhelyezett kis ütközőket.
Üzemkész ágyú
Most, hogy már megfelelően hajtja végre a vízszintes mozgást űrhajónk, csupán a rajta található ágyút kell munkára bírnunk az űrlényvadászat megkezdéséhez. Tárunk feltöltéséhez hozzunk létre egy [lövés] üzenetet, melyet küldözgetni fogunk a megfelelő komponensek irányába. A lövedéken helyezzük el a létrehozott üzenet érkezéséről értesítő [start] blokkot, majd küldjük a golyót az űrhajónk aktuális pozíciójához (az [ugorj a helyére] elem csatlakoztatásával). Ezt követően jelenítsük meg töltényünket, és kezdjük el mozgásának leírását.
Helyezzünk el egy [ismételd eddig] ciklust [jelmez-előcsalogató] parancsunk után, melynek feltételeként adjuk meg a játéktér szélének érintését figyelő érzékelési mezőt (ezt a feltételt természetesen a későbbiekben még módosítjuk). A golyó mozgatásához a cikluson belül fixáljuk le a szereplőhöz tartozó jelmezt (tehát tiltsuk meg forgását, és állítsuk 0 fokos irányba), majd húzzuk a programozósávra a [menj x lépést] blokkot (minél nagyobb számot írunk a változó helyére, annál sebesebben halad az objektum). Ezek után nincs más teendőnk, mint a cikluson kívül eltüntetni a képernyő szélére ért töltényt.
A kilövési teszt elvégzéséhez lépjünk vissza űrhajónk programozási felületére, és az indítási parancs alatt pihenő, egyelőre még üres [mindig] funkciót töltsük fel az ágyú elsütéséhez szükséges recepttel. Elsőként egy [várj eddig] mezővel bővítsük ki blokk-kupacunkat, melynek feltételeként a szóköz lenyomását érzékelő eseményt adjuk meg. Amint ezzel megvagyunk, egy várakozással megspékelt [lövés] üzenetet küldjünk a golyónak, és már kész is van töltényünk mozgásának alapja, vagyis űrhajónk a szóközbillentyű lenyomását követően kilő egy töltényt (amit csupán a képernyő szélére érve vethetünk be újra).
Mozgó célpont
Persze a céltalan lövöldözés nem túl szórakoztató, éppen ezért itt az idő, hogy tényleges funkcióval is felruházzuk a kilőhető golyót, vagyis próbáljunk meg segítségével levadászni egy űrlényt. Természetesen annak érdekében, hogy ne legyen túlzottan egyszerű leszedni, az ellenségként funkcionáló szereplőt még mozgatni is fogjuk a képernyő szélei között. Űrlényünk szintén a start zászlóra kattintáskor kezdi majd meg "lépteit", az indítás után pedig fixáljuk a szereplő aktuális pozícióját, hogy minden alkalommal ugyanarra a helyre ugorjon vissza vándorlását követően.
Egy [mindig] ággal egészítsük ki jelenleg még csak néhány blokkból álló képletünket, és kezdjük mozgatni egy [menj 3 lépést] utasítással szereplőnket. Helyezzünk el egy [ha-akkor] feltételt, ebbe az ágba pedig kizárólag akkor lépjünk be, ha szereplőnk elérte a játéktér szélét. Ha az ellenséges idegen sikeresen hozzáért a játéktér széléhez, fordítsuk meg 180 fokkal, és annak érdekében, hogy ne ragadjon be, utasítsuk egy előre lépésre is. Már csupán egyetlen teendőnk maradt: tűnjön el az űrlény, ha eltaláljuk. Ehhez egy újabb [ha-akkor] feltételre lesz szükségünk (továbbra is a mindig cikluson belül), melynek belső ágába akkor lép be a program végrehajtása, ha az objektumot érinti lövedékünk. A feltételen belül csupán két dolgot tegyünk: tüntessük el ilyen esetben az objektumot, és - hogy a későbbikben ne zavarja játékunkat - helyezzünk el mellette egy [e feladat álljon le] blokkot (több ellenfél esetén már komoly galibát okozhat a láthatatlanul továbbra is aktív szereplő). El is készültünk a játék alapjaival; az indítási gombra kattintva már vadászhatunk a képernyőn cikázó űrlényre.
Az alapjátékot persze egy kis kreativitással könnyedén feldobhatjuk a jelmezek váltogatásával, különféle hanghatások beépítésével, illetve további szereplők beemelésével. Változók segítségével számon tarthatjuk az aktuálisan kivégzett űrlényeket (így pedig akár rangsort is létrehozhatunk), de alkothatunk még saját menüt, sőt az űrlények jelenlegi passzív hozzáállását is támadóvá tehetjük, tehát aki érez egy kis ambíciót magában, egészen komplex megoldásokat hozhat ki ezekre az alapokra építkezve.
A PC World Plus felületünkről letöltheted a cikkünkben bemutatott Space Invaders játék egy jelentősen továbbgondolt (ám teljes egészében a leírtakból kiinduló) változatát. A forrás megtekintése remek inspirációt kínálhat fejlődni vágyó olvasóinknak. A zöld zászlóra kattintás után megjelenik egy üdvözlőképernyő, melyről az N billentyű leütését követően léphetünk be a játékba, ahol már nem csupán egy vonalban toporognak ellenfeleink, hanem egyre fenyegetőbben, gyorsuló tempóval közelednek űrhajónk felé.
A sorozat tovább részei:
1 - Kezdjünk el programozni
2 - Támadnak az űrlények
3 - Műveletek bűvkörében
4 - Kártyajáték születik
5 - Többjátékos üzemmód
6 - 3D-s játékkészítés
7 - Extrák a programozáshoz