Мазмуну:

ЖК баскынчылары: 16x2 ЖК белгилеринин дисплейиндеги оюн сыяктуу мейкиндик баскынчылары: 7 кадам
ЖК баскынчылары: 16x2 ЖК белгилеринин дисплейиндеги оюн сыяктуу мейкиндик баскынчылары: 7 кадам

Video: ЖК баскынчылары: 16x2 ЖК белгилеринин дисплейиндеги оюн сыяктуу мейкиндик баскынчылары: 7 кадам

Video: ЖК баскынчылары: 16x2 ЖК белгилеринин дисплейиндеги оюн сыяктуу мейкиндик баскынчылары: 7 кадам
Video: Серводвигатель с потенциометром и ЖК-дисплеем с Arduino 2024, Ноябрь
Anonim
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу
LCD Invaders: Space Invaders 16x2 ЖК символдорунун дисплейиндеги оюн сыяктуу

Легендарлуу "Space Invaders" оюнун киргизүүнүн кажети жок. Бул долбоордун эң кызыктуу өзгөчөлүгү - графикалык чыгаруу үчүн тексттик дисплейди колдонушу. Бул 8 бажы белгилерин ишке ашыруу аркылуу жетишилет.

Толук Arduino эскизин бул жерден жүктөп алсаңыз болот:

github.com/arduinocelentano/LCD_invaders/

Жабдуулар

Arduino UNO башкармалыгы

LCD баскыч калканы

Эскиз жүктөө үчүн USB кабели

1 -кадам: Оюн дизайны

Оюн Дизайн
Оюн Дизайн

Экран өзүнчө пикселдерди башкарууга мүмкүндүк бербейт жана оюн үчүн жетишсиз болгон эки гана текстти камтыйт. Бирок бул 8 бажы белгилерине чейин ишке ашырууга мүмкүндүк берет. Айла - бул ар бир 5х8 пикселдик белгини эки 5х4 пикселдик оюн клеткалары катары иштетүү. Башкача айтканда, бизде 16x4 оюн талаасы болот, бул мааниге ээ. Оюнчунун космос кемеси, ок жана анимацияланган келгиндер үчүн спрайттарды ишке ашыруу үчүн 8 белги жетиштүү. Спрайт 5х4 жана каармандар 5х8 болгондуктан, бизге "космос кемеси жана ок" спрайт, "келгин жана ок спрайт" сыяктуу эки спрайт менен кээ бир каармандар керек болот.

2 -кадам: иштетүү баскычтары

Иштетүү баскычтары
Иштетүү баскычтары

Адатта, ЖК калканындагы бардык баскычтар бир эле аналогдук пинге туташтырылган. ЖК калканчынын ар кандай версиялары бар, андыктан менин баскычты иштетүү кодумда бүтүндөй литералдарды бир аз өзгөртүү керек болот.

3 -кадам: Класстар иерархиясы

Класстар иерархиясы
Класстар иерархиясы

Мен координаттары жана ылдамдык талаалары жана кагылышууларды иштетүүчү GameObject базалык классын ишке ашырдым. Класс, Келгин жана Ок класстары андан тукум кууп өткөн.

4 -кадам: Экранды жаңыртуу

Экранды жаңыртуу
Экранды жаңыртуу

Рендеринг логикасы бир аз татаал көрүнүшү мүмкүн, анткени биз 16x4 оюн логикасын 16x2 дисплейге айландырышыбыз керек. Сураныч, кошумча маалымат алуу үчүн коддогу комментарийлерди окуңуз. Жаркылдап калбаш үчүн, текст буфер катары эки өлчөмдүү чар массивин колдондум. Бул экранды жаңыртуу үчүн жуптарды (ар бир сап үчүн бирден) колдонууга мүмкүндүк берет.

5 -кадам: Оюн логикасы

Оюн логикасы
Оюн логикасы

Бул жерде оюндун жүрөгү. Негизги цикл бардык объекттердин координаттарын өзгөртөт, ар кандай кагылышууларды жана баскычтарды басуу окуяларын текшерет. Келгиндердин ылдамдыгы жана алардын атуу ыктымалдыгы деңгээлден деңгээлге чейин жогорулайт. Бирок упай сыйлык да жогорулайт.

6 -кадам: Пасха жумурткасы

Пасха жумурткасы
Пасха жумурткасы

42 -деңгээлден кийин деңгээл жок. Олуттуу. Бул Жашоонун, Ааламдын жана баардык нерсенин эң жогорку деңгээли.:)

Сунушталууда: