INHOUDSOPGAWE:

LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karaktervertoning: 7 stappe
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karaktervertoning: 7 stappe

Video: LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karaktervertoning: 7 stappe

Video: LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karaktervertoning: 7 stappe
Video: Space Invaders - LCD Display 1602 - Creating Alien character - Intel 8086 2024, Julie
Anonim
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm
LCD Invaders: 'n Space Invaders Like Game op 'n 16x2 LCD -karakterskerm

Dit is nie nodig om 'n legendariese "Space Invaders" -speletjie bekend te stel nie. Die interessantste kenmerk van hierdie projek is dat dit teksvertoning gebruik vir grafiese uitvoer. Dit word bereik deur 8 persoonlike karakters te implementeer.

U kan die volledige Arduino -skets hier aflaai:

github.com/arduinocelentano/LCD_invaders/

Voorrade

Arduino UNO raad

LCD -sleutelbordskerm

USB -kabel vir sketsoplaai

Stap 1: Spelontwerp

Spelontwerp
Spelontwerp

Die skerm kan nie afsonderlike pixels beheer nie en bevat slegs twee reëls teks, wat nie genoeg is vir speletjies nie. Maar dit maak dit moontlik om tot 8 pasgemaakte karakters te implementeer. Die truuk is om elke 5x8 pixel karakter as twee 5x4 pixels spel selle te verwerk. Dit wil sê, ons het 'n spelveld van 16x4, wat sinvol is. 8 karakters is net genoeg om sprites te implementeer vir die ruimteskip van die speler, koeëls en geanimeerde vreemdelinge. Aangesien die sprites 5x4 en die karakters 5x8 is, benodig ons 'n paar karakters met twee sprites, soos ''n ruimteskip en 'n koeël', ''n alien en 'n bullet sprite', ens. Al die persoonlike karakters word op die prentjie getoon.

Stap 2: Knoppies verwerk

Knoppies verwerk
Knoppies verwerk

Gewoonlik is al die knoppies op 'n LCD -skerm aan dieselfde analoogpen gekoppel. Daar is verskillende weergawes van LCD -skild, so u sal waarskynlik heelgetal lettertjies in my knoppieverwerkingskode effens moet verander.

Stap 3: Hiërargie van klasse

Hiërargie van klasse
Hiërargie van klasse

Ek het 'n basisklas GameObject geïmplementeer wat koördinate en spoedvelde het en botsings verwerk. Klasse Ship, Alien en Bullet word daarvan geërf.

Stap 4: Werk die skerm op

Dateer die skerm op
Dateer die skerm op

Die weergawe van logika kan 'n bietjie ingewikkeld lyk, want ons moet die spellogika van 16x4 omskep in 'n 16x2 -skerm. Lees die kommentaar in die kode vir verdere verwysing. Om flikkering te voorkom, gebruik ek 'n tweedimensionele karreeks as 'n teksbuffer. Dit maak dit moontlik om 'n paar (een vir elke reël) drukwerk te gebruik om die skerm op te dateer.

Stap 5: Spellogika

Spellogika
Spellogika

Hier is die hart van die spel. Die hooflus verander die koördinate van al die voorwerpe, kontroleer allerhande botsings en druk op knoppies. Die spoed van vreemdelinge en hul skietwaarskynlikheid neem toe van vlak tot vlak. Maar die tellingbeloning neem ook toe.

Stap 6: 'n Paaseier

'N Paaseier
'N Paaseier

Daar is geen vlak na vlak 42. Ernstig. Dit is die uiteindelike lewensvlak, die heelal en alles.:)

Aanbeveel: