Tartalomjegyzék:
- Kellékek
- 1. lépés: Főhurok
- 2. lépés: Joystick
- 3. lépés: A puffer megjelenítése
- 4. lépés: Betolakodók, golyók és a játékos
- 5. lépés: Tedd magadévá
![Space Invaders in Micropython on Micro: bit: 5 lépés Space Invaders in Micropython on Micro: bit: 5 lépés](https://i.howwhatproduce.com/images/007/image-18753-j.webp)
Videó: Space Invaders in Micropython on Micro: bit: 5 lépés
![Videó: Space Invaders in Micropython on Micro: bit: 5 lépés Videó: Space Invaders in Micropython on Micro: bit: 5 lépés](https://i.ytimg.com/vi/r5iYI-xDLic/hqdefault.jpg)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
![Image Image](https://i.howwhatproduce.com/images/007/image-18753-2-j.webp)
![](https://i.ytimg.com/vi/r5iYI-xDLic/hqdefault.jpg)
Korábbi cikkeinkben a GameGo -n, a TinkerGen oktatás által kifejlesztett hordozható retro játékkonzolon vizsgáltuk a játékkészítést. Az általunk készített játékok a régi Nintendo játékokra emlékeztettek. Mai cikkünkben visszalépünk egy lépést, az arcade játékok aranykorába. Újra létrehozjuk a Space Invaders játékot a Micropythonban a Micro: bit mikrokontrolleren - és csavarásként a BitPlayer Micro: bit kiterjesztést is használjuk, amely lehetővé teszi a játék kényelmesebb lejátszását.
Mivel ez az oktatóanyag a játék Micropython-ban történő kódolásáról szól, a grafikus programozási oktatóanyagokhoz korábban használt hagyományos, szakaszonkénti szekvencia helyett blokkról-lépésre megyünk át a kódon-áttekintve a fontos funkciókat, osztályokat és a fő hurok. A teljes kódot letöltheti a projekt GitHub adattárából. Csatold fel és kezdjük!
Kellékek
TinkerGen BitPlayer
BBC Micro: bit
1. lépés: Főhurok
![Joystick Joystick](https://i.howwhatproduce.com/images/007/image-18753-3-j.webp)
Ebben az oktatóanyagban elég gyakran fogom használni a "módszer" szót. A python metódusa némileg hasonlít a függvényhez, kivéve, ha objektumhoz/osztályokhoz van társítva. Tehát az egyszerűsítés kedvéért "az osztályon belüli függvényként" olvasható. A módszerekről itt olvashat bővebben.
A gombbal lépünk be a fő hurokba
míg nem game_over:
állapot. Belül kapjuk a betolakodók számát, megjelenésük esélyét és a következő szintre jutáshoz szükséges számot a szintek szótárából. Ezután a JoyStick osztálypéldány Listen_Dir példamódszereivel ellenőrizzük a bal-jobb mozgást. Ha az egyik feltétel igaznak minősül, akkor növeljük/csökkentjük a játszható karakterünk x-értékét. [-2, 2] -re korlátozzuk két if feltétellel. Ezután inicializáljuk a DisplayBuffer osztály egy példányát, és ellenőrizzük a "pajzs" vagy "tűzgolyó" gomb megnyomását. A DisplayBuffer.set () módszerrel objektumokat állítunk be a későbbi megjelenítéshez. A pajzs megjelenítéséhez közvetlenül a DisplayBuffer.set () -et használjuk, de a golyók és betolakodók esetén hozzáadjuk őket a listájukhoz, és egyenként beállítjuk () őket a ciklushoz a következő kóddal a későbbi megjelenítéshez a DispBuffer.render () segítségével:
b esetén golyók: b.render (dispBuf) v in vaders: v.render (dispBuf)
Minden betolakodó, golyó és pajzs minden főhurok iteráció után megjelenik a kijelzőn
dispBuf.render ()
A fő ciklus vége előtt ellenőrizzük, hogy a betolakodók golyói elérték -e a képernyő végét, és ha igen, akkor töröljük őket a listájukról.
2. lépés: Joystick
![Joystick Joystick](https://i.howwhatproduce.com/images/007/image-18753-4-j.webp)
A BitPlayer könnyen tartható és használható, kéttengelyes joystickjával, például Gameboy vagy PSP vezérlőivel, és további 6 programozható gombot tartalmaz L, R, A, B, C és D felirattal. A magával ragadó és interaktív élmény érdekében a BitPlayer magában foglal egy hangjelzőt, vibrációs motort és egy Grove I2C portot, amely további perifériákat, például OLED kijelzőt csatlakoztathat.
Ehhez a játékhoz csak a joystick bal-jobb lengőgombját használjuk, a BitPlayer gombok használatára vonatkozó teljes példa érdekében megtekintheti a joystick_example.py címet a projekt GitHub tárházában. A JoyStick osztály példányának létrehozásakor ellenőrizzük az X-tengely alapértelmezett olvasását, és tároljuk ezt az értéket önmagunkban. Read_X. Ezután a Listen_Dir függvényben ellenőrizzük, hogy az ettől az alapértelmezett értéktől való eltérés nagyobb -e, mint az érzékenységi változó (próbálja meg saját maga csípni, ha úgy érzi, hogy a JoyStick túl érzékeny), és a True of False értéket adja vissza az észlelt irány szerint.
Nézzünk egy konkrét példát ennek működésére:
Tegyük fel, hogy az alapértelmezett X-tengely leolvasása 0. Ezután, ha jobbra mozgatjuk a joystickot:
New_X = JoyStick_X.read_analog () #New_X = 200
Jobb = New_X - self. Read_X #Right = 200 Bal = self. Read_X - New_X #Left = -200
Aztán amikor ellenőrizzük az irányt:
Pontosság = 150if jobbra> Pontosság: #200> 150 True Get_Rocker = DIR ['R'] elif Bal> Pontosság: #-200> 150 False Get_Rocker = DIR ['L'] else: Get_Rocker = DIR ['NONE'] if Dir == Get_Rocker: return true else: return hamis
3. lépés: A puffer megjelenítése
![Kijelző puffer Kijelző puffer](https://i.howwhatproduce.com/images/007/image-18753-5-j.webp)
A DisplayBuf osztály felelős a LED képernyő vezérléséért. Ez két módszerrel történik: set () és render (). set () metódus megváltoztatja a LED képernyőképpontoknak megfelelő értékeket. Emlékezhet rá, hogy a Micro: bit LED képernyőn a képpontok kifejezhetők karakterláncként vagy listaként - a "00000: 00000: 00000: 00000: 00000" üres képernyő. A "00000: 00000: 00000: 00000: 00100" képernyő az alsó sor közepén gyengén megvilágított pixel.
00000:
00000
:00000
:00000:
00100"
Ezt a jelölést talán könnyebb feldolgozni:)
Tehát a fő ciklus során a DisplayBuf call set () metódusa állít be minden objektumot, amelyet meg kell jeleníteni a képernyőn. Ezután a render () metódust használva megjelenítjük őket egyszerre a képernyőn.
4. lépés: Betolakodók, golyók és a játékos
![Betolakodók, golyók és a játékos Betolakodók, golyók és a játékos](https://i.howwhatproduce.com/images/007/image-18753-6-j.webp)
A golyók és a betolakodók a Mover osztályba tartoznak. A Mover osztályú példányok rendelkeznek x, y helyekkel és sebességgel, valamint fényerővel. A Mover osztálynak két példányos metódusa van, a set () és a move (). A set () metódus egyszerűen meghívja a DisplayBuf set () metódust frissített koordinátákkal, hogy elmentse a későbbi LED -mátrixon történő megjelenítéshez. A move () metódus frissíti a példánykoordinátát a példány sebessége szerint - ez hasznos lesz később, amikor a szintek előrehaladtával változtatnunk kell a betolakodók sebességén.
A Class Bullet és az Class Invader a Mover osztály alosztályai. Itt valami öröklődésnek nevezett dolgot használunk. A super () funkcionalitása lehetővé teszi számunkra, hogy meghívjuk a szuperosztály metódusait az alosztályban, anélkül, hogy ismételnünk kellene a kódot.
5. lépés: Tedd magadévá
![Legyen saját Legyen saját](https://i.howwhatproduce.com/images/007/image-18753-7-j.webp)
Gratulálunk! Most hozta létre újból a klasszikus Space Invaders játékot Micro: bit-en, néhány klassz hardverrel. Természetesen innen javíthat a játékkódon - például a jelenlegi állapot szerint a játéknak csak egy szintje van - további kihívásokat is hozzáadhat. Továbbá, amint emlékeznek, az eredeti játékban sziklák lebegnek a lejátszó előtt, amelyeket szintén hozzáadhat.
Ha javított változatot készít a játékról, ossza meg az alábbi megjegyzésekben! Ha további információra van szüksége a BitPlayer és más hardverek számára a gyártók és a STEM oktatók számára, látogasson el weboldalunkra, a https://tinkergen.com/ oldalra, és iratkozzon fel hírlevelünkre.
A TinkerGen nemrég létrehozott egy Kickstarter kampányt a MARK (Make A Robot Kit) számára, amely egy robotkészlet a kódolás, a robotika, az AI tanítására!
A hexkcd/micro-vaders eredeti Micropython kódját megváltoztattuk a TinkerGen BitPlayer használatához.
Ajánlott:
LCD Invaders: Space Invaders Like Game 16x2 LCD karakterkijelzőn: 7 lépés
![LCD Invaders: Space Invaders Like Game 16x2 LCD karakterkijelzőn: 7 lépés LCD Invaders: Space Invaders Like Game 16x2 LCD karakterkijelzőn: 7 lépés](https://i.howwhatproduce.com/images/007/image-18710-j.webp)
LCD Invaders: Space Invaders Like Game 16x2 LCD karakterkijelzőn: Nincs szükség egy legendás „Space Invaders” játék bevezetésére. Ennek a projektnek a legérdekesebb tulajdonsága, hogy szöveges megjelenítést használ a grafikus kimenethez. 8 egyéni karakter megvalósításával érhető el. Letöltheti a teljes Arduino
Micro: bit bit Fények kezdőknek: 5 lépés
![Micro: bit bit Fények kezdőknek: 5 lépés Micro: bit bit Fények kezdőknek: 5 lépés](https://i.howwhatproduce.com/images/009/image-25141-j.webp)
Micro: bitek Fények kezdőknek: Ehhez az utasításhoz szüksége lesz egy Micro: Bitre és egy laptopra, nem lehet Mac. Ha Mac -et használ, akkor további lépésekre van szükség, vagy adapterre van szükség az USB -porthoz
Micro: Bit Robot és Joystick programozása: Bitvezérlő MicroPython segítségével: 11 lépés
![Micro: Bit Robot és Joystick programozása: Bitvezérlő MicroPython segítségével: 11 lépés Micro: Bit Robot és Joystick programozása: Bitvezérlő MicroPython segítségével: 11 lépés](https://i.howwhatproduce.com/images/011/image-32506-j.webp)
Mikro: Bit Robot és Joystick programozása: Bitvezérlő MicroPython-szal: A Robocamp 2019 nyári robotikai táborunkban a 10-13 éves fiatalok forrasztják, programozzák és építik a BBC mikro: bit alapú „súlyellenes robotját”, valamint programoznak micro: bit távirányítóként használható. Ha jelenleg a Robocamp -on tartózkodik, síeljen
Space Invaders Clock (költségvetésből!): 6 lépés (képekkel)
![Space Invaders Clock (költségvetésből!): 6 lépés (képekkel) Space Invaders Clock (költségvetésből!): 6 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-1806-81-j.webp)
Space Invaders Clock (költségvetésből!): Nemrég láttam egy jó konstrukciót GeckoDiode -tól, és azonnal magam akartam megépíteni. Az Instructable a Space Invaders asztali óra, és azt javaslom, hogy nézze meg, miután elolvasta ezt. A projekt szinte kizárólag alkatrészekből épült
Space Invaders csillár ragyog a sötétben Akció: 16 lépés (képekkel)
![Space Invaders csillár ragyog a sötétben Akció: 16 lépés (képekkel) Space Invaders csillár ragyog a sötétben Akció: 16 lépés (képekkel)](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10965682-space-invaders-chandelier-with-glow-in-the-dark-action-16-steps-with-pictures-j.webp)
Space Invaders csillár ragyog a sötétben Akció: 3D modellezés/nyomtatás, lézervágott akril, gyantaöntés, UV -reaktív pigment, LED -ek és néhány egyszerű huzalozás révén stílusos és retro hűvös űrbe betörő csillár vagy lámpa készül. Mellékeltem egy szép trükköt, amellyel íves sarkokat készíthetek lézer cuccból