Мазмуну:
Video: Arduino согуштук оюну: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Эсимде, бала кезимде Баттлс Оюнунун кагаз жана карандаш версиясын ойногом. Чынында, бул 1 -дүйнөлүк согуштан бери эле болуп келген. Менде 1960 -жылдардын башында "Sonar Sub Hunt" деп аталган "электрондук" варианты бар болчу, анда жарыктар жана үндөр жана жашыруун миналар болгон. Бүгүнкү видео оюндун стандарттары боюнча Battleship абдан кызыксыз, бирок мен неберелеримдин бул тууралуу эмне деп ойлогонун көрүү үчүн муну жасайм деп ойлогом. Кантсе да, кээде ретро сонун болушу мүмкүн.
Бул долбоордун биттери жана бөлүктөрү бар, эгер сиз Battleship оюнун жасоого кызыкпасаңыз дагы, башка жерде пайдалуу болмок. Бул белгилүү 4 тамашалуу 1602 ЖК интерфейсине ээ, ал белгилүү бир тамга жайгашуусун орнотуу тартибин камтыйт. Ошондой эле 4x4 которуу матрицасын декоддоо үчүн интерфейс бар. Бул эки интерфейс өзүнчө файлдарды камтыйт, андыктан аларды оңой ташууга болот. Оюнда ошондой эле ар кандай үн эффект тартиби жана жөнөкөй бир транзисторлуу аудио күчөткүч схемасы бар.
1 -кадам: Аппараттык
Бул жерде берилген схема бир оюнчу үчүн, ошондуктан эки бирдик жасалышы керек. Бирдиктер UART TX жана RX линияларын жана жер зымын камтыган 3 зымдуу интерфейсти колдонуп байланышат. Мен стандарттуу 1/8 дюймдук стерео гарнитура уячасын жана эки учунда эркек сайгычтары бар стандарттык кабель колдонууну чечтим. Бир кутудан RX башка кутунун TXсине барат жана тескерисинче. Сиз муну кутучанын ичиндеги гарнитуранын уячасына туташкан зымдарды алмаштыруу же аны куруп жатканда электр тактасына алмаштыруу аркылуу кыла аласыз.
Классикалык оюн матрица катары коюлган, бирок мен дисплей үчүн 1602 ЖКнын жардамы менен жөнөкөй ишке ашырууну чечтим. Биринчи сап оюнчунун кеме жайгашкан жерлерин жана каршылаштын соккуларын көрсөтөт. Экинчи сап оюнчунун соккуларын жана каршылаштын кемелерине тийген соккуларды көрсөтөт. Бул кемелер үчүн 16 мүмкүн болгон жерлерди камсыз кылат. Кемелердин саны программада белгиленген жана өзүм билемдик менен 5 тандагам.
16 кеменин жайгашкан жери которуу талаптарына ылайыктуу, анткени ал 4x4 матрицасына жол ачат. 4x4 матрицалуу которгучтар бар, бирок мен линиялык дисплейге дал келүү үчүн жеке линияларды бир линияда колдонууну чечтим. Мен өчүргүчтөрдү 4х4 матрица катары өткөрдүм, ошондуктан сегиз Arduino төөнөгүчтөрү гана керек. Туура туташуу үчүн коммутатордун электр схемасына жана схемасына кайрылыңыз.
ЖК дисплей 4-бит интерфейси үчүн зымдуу. Мен ошондой эле D13 пинге тышкы LEDди кошуп, кайсы оюнчу атуу керектигин көрсөтүштү. Башында, оюнчулар биринчи кадрды ким аларын чечишет, андан кийин программалык камсыздоо оюндун алды -артын автоматтык түрдө башкарат.
Мен атууга, жарылууларга, оюнга даяр жана жеңүүчү/уттуруучуга жөнөкөй үн эффекттерин кошкум келди. Мен жөнөкөй пьезо сигналын колдонууга аракет кылдым, бирок анын ордуна кичинекей динамик келди. Динамик талап кылган ток Arduino колунан келген нерседен ашып түшөт, ошондуктан жөнөкөй транзистордук күчөткүч кошулду. Үн дагы деле сонун эмес, бирок бул ызылдакка караганда жакшы. Менин спикерим 4 ом, бирок эгерде сизде 8-ом болсо, анда резисторду схемада 39 Омдон 33 Омго алмаштырыңыз. Эгерде сиз пьезо сигналын колдонсоңуз, анда аны Arduino пининен түз эле кууп чыгыңыз, экинчи жагынан жерге байланышкан.
Тышкы калыбына келтирүү которгучу да камтылган жана Arduinoдогу жерге жана "баштапкы абалга келтирүү" пининин ортосунда түз өткөрүлөт. Бул оюнду кайра баштоо үчүн каражаттарды камсыз кылат.
2 -кадам: Программалык камсыздоо
Программада менин LCD интерфейсиме кошуу файлы бар, мен 4х4 которгуч матрицаны сканерлөө үчүн кошуу файлын түздүм. Инициализация оюнчуну өзүнүн кемелери үчүн жерлерди тандоого үндөйт жана андан кийин "Даяр" абалына өтөт. Эки оюнчу тең даяр болгондо, алардын бири оюнду которгучту басуу менен баштайт.
Атылган жер UART аркылуу башка оюнчуга берилет жана тийиштүү жыйынтык ок чыгарган оюнчуга кайра берилет. Жогоруда айтылгандай, биринчи кадр тартылганда, программалык камсыздоо кийинки кадрды ким аларын көзөмөлдөйт. Атып жиберүүдөн мурун, мурунку кадрлардын жайгашуусу текшерилет. Эгер бул жер мурунтан эле колдонулган болсо, анда кадр өткөрүлбөйт. "My_Shot" светодиоду кимдин кезегин аныктайт. Жарактуу тандоо үчүн жарылган ок үнү жана кемеге тийсе жарылуу үнү да бар. Үн эффекттери оюнга ылайыктуу өзгөртүүлөр менен интернеттен табылган мисалдардан алынган.
Каршылаштардын кемелери урулган соң, ар бир ЖКда бир билдирүү көрсөтүлөт - бири жеңүүчү, бири утулган. Билдирүүдө ошондой эле оюнду баштапкы абалга келтирүү баскычын басуу менен кайра баштоого болору көрсөтүлгөн. Жеңүүчү менен жеңилген үчүн өзүнчө үн эффекттери бар.
3 -кадам: Screen Shots
Бул жерде оюндун кээ бир скриншоттору. Бул бул пост үчүн. Менин башка көрсөтмөлөрүмдү жана менин веб -сайтымды текшериңиз: www.boomerrules.wordpress.com
Сунушталууда:
DIY 37 Leds Arduino Roulette Оюну: 3 кадам (Сүрөттөр менен)
DIY 37 Leds Arduino Roulette Game: Рулет - бул кичинекей дөңгөлөк дегенди билдирген француз сөзүнүн атынан аталган казино оюну
3d лабиринт оюну Arduino аркылуу: 8 кадам (сүрөттөр менен)
3d лабиринт оюну Arduino колдонуу: Салам достор, ошондуктан бүгүн биз ARDUINO UNOнун жардамы менен лабиринт оюнун жасайбыз. Arduino Uno көбүнчө колдонулган такта болгондуктан, аны менен ойноо абдан сонун. Бул Нускамада джойстиктер аркылуу башкарылган лабиринт оюнун жасоого мүмкүндүк берет. Унутпаңыз
ARDUINO + SCRATCH Атуу оюну: 6 кадам
ARDUINO + SCRATCH Shooting Game: Тортту сактаңыз !!! Ал коркунучта. Ага төрт чымын бар. Чымындарды атууга жана тортуңузду сактоого болгону 30 секунд бар
Arduino Sorta Sudoku Оюну: 3 кадам (Сүрөттөр менен)
Ардуино Сорта Судоку Оюну: Көптөр Судокуну жана неберелерин оюнду жакшы көрүшөт, ошондуктан мен портативдүү "Sorta Sudoku" оюнун жасоону чечтим. Менин версиямда оюн 4х4 сетка, бирок бир гана сан берилет. Идея калган сандарды болжолдоо
Согуштук кемелер оюну: 9 кадам
Согуштук кемелер оюну: Сиз эч качан деңиз согуш машиналарын толук көзөмөлдөгөн капитан болууну кыялдандыңыз беле? Анда согуш кемелери оюну сиз үчүн эң сонун оюн. Бул деңиз согуштук эпикалык оюну жарылуучу заттарга толгон жана анын түпкү максаты - душмандын бардык кемелерин кайда экенин билип жок кылуу