Turinys:

LCD užpuolikai: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane: 7 žingsniai
LCD užpuolikai: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane: 7 žingsniai

Video: LCD užpuolikai: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane: 7 žingsniai

Video: LCD užpuolikai: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane: 7 žingsniai
Video: Part 6 - Lord Jim Audiobook by Joseph Conrad (Chs 37-45) 2024, Liepa
Anonim
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane
„LCD Invaders“: „Space Invaders Like“žaidimas 16x2 LCD simbolių ekrane

Nereikia pristatyti legendinio „Space Invaders“žaidimo. Įdomiausia šio projekto ypatybė yra ta, kad grafiniam išėjimui naudojamas tekstinis ekranas. Tai pasiekiama įgyvendinant 8 pasirinktinius simbolius.

Visą „Arduino“eskizą galite atsisiųsti čia:

github.com/arduinocelentano/LCD_invaders/

Prekės

„Arduino UNO“lenta

LCD klaviatūros skydas

USB kabelis eskizų įkėlimui

1 žingsnis: žaidimo dizainas

Žaidimo dizainas
Žaidimo dizainas

Ekranas neleidžia valdyti atskirų pikselių ir pateikia tik dvi teksto eilutes, kurių nepakanka žaidimui. Bet tai leidžia įdiegti iki 8 pasirinktinių simbolių. Triukas yra kiekvieną 5x8 pikselių simbolį apdoroti kaip dvi 5x4 pikselių žaidimo ląsteles. Tai reiškia, kad turėsime 16x4 žaidimo lauką, kuris yra prasmingas. 8 simbolių pakanka žaidėjo erdvėlaiviui, kulkoms ir animaciniams ateiviams pritaikyti. Kadangi raštai yra 5x4, o simboliai - 5x8, mums reikės kai kurių simbolių su dviem raštais, pvz., „Erdvėlaivis ir kulka“, „ateivis ir kulka“ir tt Visi paveikslėlyje rodomi pasirinktiniai simboliai.

2 veiksmas: apdorojimo mygtukai

Apdorojimo mygtukai
Apdorojimo mygtukai

Paprastai visi LCD ekrano mygtukai yra prijungti prie to paties analoginio kaiščio. Yra įvairių skystųjų kristalų ekrano versijų, todėl tikriausiai turėsite šiek tiek pakeisti sveikų skaičių literales mano mygtukų apdorojimo kode.

3 žingsnis: klasių hierarchija

Klasių hierarchija
Klasių hierarchija

Įdiegiau bazinės klasės „GameObject“, kuris turi koordinates ir greičio laukus bei apdoroja susidūrimus. Iš jo paveldimos klasės „Ship“, „Alien“ir „Bullet“.

4 veiksmas: ekrano atnaujinimas

Ekrano atnaujinimas
Ekrano atnaujinimas

Atvaizdavimo logika gali atrodyti šiek tiek sudėtinga, nes 16x4 žaidimo logiką turime paversti 16x2 ekranu. Norėdami gauti daugiau informacijos, perskaitykite kodo komentarus. Norėdami išvengti mirgėjimo, kaip teksto buferį naudojau dvimatį char masyvą. Tai leidžia ekranui atnaujinti naudoti kelias spausdinimo operacijas (po vieną kiekvienai eilutei).

5 žingsnis: žaidimo logika

Žaidimo logika
Žaidimo logika

Čia yra žaidimo esmė. Pagrindinė kilpa keičia visų objektų koordinates, tikrina visų rūšių susidūrimus ir mygtukų paspaudimus. Ateivių greitis ir jų šaudymo tikimybė didėja nuo lygio iki lygio. Tačiau atlygis už balus taip pat didėja.

6 žingsnis: Velykų kiaušinis

Velykų kiaušinis
Velykų kiaušinis

Po 42. lygio nėra. Rimtai. Tai yra galutinis gyvenimo lygis, Visata ir viskas.:)

Rekomenduojamas: