Obsah:

Pong hrající flexibilní obrazovku na tričku: 8 kroků (s obrázky)
Pong hrající flexibilní obrazovku na tričku: 8 kroků (s obrázky)

Video: Pong hrající flexibilní obrazovku na tričku: 8 kroků (s obrázky)

Video: Pong hrající flexibilní obrazovku na tričku: 8 kroků (s obrázky)
Video: Proč jsou Číňani v pingpongu nejlepší na světě? 🌏 🇨🇳 2024, Listopad
Anonim
Pong hrající flexibilní obrazovku na tričku
Pong hrající flexibilní obrazovku na tričku
Pong hrající flexibilní obrazovku na tričku
Pong hrající flexibilní obrazovku na tričku
Pong hrající flexibilní obrazovku na tričku
Pong hrající flexibilní obrazovku na tričku

Toto je můj halloweenský kostým na rok 2013. Na tvorbě se pracuje zhruba rok a jeho tvorba zabrala několik hodin práce. Obrazovka má 14 x 15 pixelů, takže je to docela nízké rozlišení, ale stále dokáže dělat zábavné věci. Je fyzicky flexibilní ve všech směrech, i když ji nelze složit bez poškození. Má ovladač sestávající z jediného tlačítka a posuvného hrnce, připojeného k pro mega přes USB. Aby ji udržel naživu po dlouhou dobu, využívá dvě monstrózní 2200 mAh baterie zapojené do série, aby získaly potřebné napětí, a poté 5voltový regulátor, aby byl použitelný. Veškerá elektronika je umístěna v kapsách na vnitřní straně košile, takže je lze vyjmout a tričko lze prát. Hraje funkční hru pong. Nejprve je ozdoben slovy „PONG PLAY“v nádherném modrém písmu pomocí upravené verze písma Tom Thumb (najdete na https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Po pěti sekundách může být dáno stisknout tlačítko pro pokračování, nebo tlačítko nestisknout a zanechat za sebou dokonale dobrý zážitek. Když se někdo rozhodne stisknout tlačítko, hra začíná. Červené pádlo na pravé straně je pádlo počítače a zelené pádlo na pravé straně je pádlo hráče, které se ovládá posuvným potem a pohybuje se nahoru a dolů. Míč se odráží, když se každá strana snaží získat bod. Hráč může zasáhnout míč okrajem pádla, aby ho zrychlil (pěkná funkce), zatímco počítač to nedokáže, a místo toho skončí uvíznutý v pohybu o něco pomaleji než míč. Když je bod zaznamenán, změní se pixel na pádle hodnotících stran na bílou. Počítá se binárně odspodu. kde zelená nebo červená je nula a bílá je 1. 21 je skóre, které lze vyhrát (nebo prohrát podle toho, kdo získá 21 bodů), a tak když hráč na pádle přečte 10101, zobrazí se text „VYHRAJETE“. Ještě jednou v upraveném Tom Thumb. Totéž se stane, ale místo toho se zobrazí „YOU LOSE“. Po výhře nebo prohře se hra restartuje do bodu hned po hře Pong. Chcete-li zcela restartovat, je stisknuto tlačítko restartu na „Magic Box“, známém také jako box s celou elektronikou kromě obrazovky.

Krok 1: Materiály a nástroje

Materiály a nástroje
Materiály a nástroje
Materiály a nástroje
Materiály a nástroje

Věci označené * jsou volitelné, ale doporučujeme A tak v žádném konkrétním pořadí… Materiály: 4 yardy Adafruit Neopixle 60 pixelů na metr proužek 1 tričko * 1 pár podvazků 1/2 yardu látky bude více než dost (bez upřednostňuje se pružná vazba) 6 stop USB A samec na USB B samčí kabel 1 USB A samičí konektor 3 2kolíkové konektory JST samice 4 2kolíkové JST samčí vodiče nabíječka baterií 2 6600 mAh baterie 1 arkádový styl Tlačítko 1 arduino pro-mega 1 FTDI konektor 1 konektor USB B female s odpojovací deskou 1 vypínač/přepínač (přepínací) 1 resetovací spínač (přepínací nebo momentální) 1 posuvný potenciometr *1 knoflík posuvného hrnce 1 pár konektorů vysokého zesilovače *1 pouzdro na projekt 1 regulátor napětí 5 V 3+ malý trochu plastu trochu pájky nějaký drát nějaký závit *nějaké horké lepidlo *nějaký čas elastické (možná trochu víc než „nějaké“) nějaká vytrvalost (pravděpodobně toho budete potřebovat opravdu dost) nějaké smršťovací bužírky nebo elektrická páska nějaké super lepidlo trochu železa na podložce Nástroje *Pomocné ruce normální rukou s (nebo někdo, kdo k nim má přístup) Páječka *Horkovzdušná pistole Dremel nebo sekáčový sekáč Střihače drátu Odřezávače drátu Šroubovák Řezačka Pily Čepy Šicí stroj Látkové nůžky

Krok 2: Odřízněte pásek LED na menší proužky

Odřízněte pásek LED na menší proužky
Odřízněte pásek LED na menší proužky
Odřízněte pásek LED na menší proužky
Odřízněte pásek LED na menší proužky
Odřízněte pásek LED na menší proužky
Odřízněte pásek LED na menší proužky

Použijte upřednostňované řezací náčiní a rozřízněte proužek na 14 segmentů, každý o délce 15 pixelů. Řezejte pouze mezi měděnými stopami, označenými něčím jako „DO“„DIN“„+5V“a „GND“. Pokud je již pájeno přes měď, právě se prořízly. Snažte se neřezat příliš mnoho do odhalené mědi, ale pokud ji trochu poškrábáte, je to v pořádku. Jakmile je všech 14 proužků odstřiženo, odstřihněte z každého konce trochu gumy, aby se nedostalo z cesty pro pájení proužků.

Krok 3: Pájení obrazovky dohromady

Pájení obrazovky dohromady
Pájení obrazovky dohromady
Pájení obrazovky dohromady
Pájení obrazovky dohromady
Pájení obrazovky dohromady
Pájení obrazovky dohromady

Vezměte drát a ustřihněte jej na segmenty asi 3,5 cm (9 cm). V mém případě mám tři různé barvy, které usnadňují rovné pájení, ale jedna barva by fungovala dobře. Budete potřebovat asi 40 těchto malých kluků, ale pro jistotu jich ještě pár uřízněte. Jakmile dokončíte řezání drátu, odizolujte a pocínujte konce (Pokud máte zkušenosti s pájením, můžete přeskočit na další odstavec), což znamená, že poté, co odstraníte trochu plastu, naneste na konce každého drátu pájku. Neohřívejte pájku a zkuste se přesunout k drátu, zahřejte páječku ze spodní části mědi a pájku položte na vrch. Buďte trpěliví a počkejte, až horký drát roztaví pájku. Je lákavé přitáhnout páječku k pájce, aby mohla začít (má netrpělivost a já přesně vím, jak se cítíte), ale pájka se také nelepí. Totéž proveďte pro odkryté měděné stopy na každém konci pásových částí. Pokud již má pájku, nedělejte si s tím starosti. U pásu možná budete chtít vybudovat malou mohylu, abyste si to později usnadnili. Při práci s páskem to udělejte rychle a snažte se netrávit mnoho času působením tepla na pás. Udělejte pouze to, co je potřeba k roztavení pájky na stopu. Na každou stopu připájejte vodič na konec prvního proužku (první proužek je ten s dráty a konektorem, připájejte jej na odkrytý konec). Když se podíváte na proužek, uvidíte na něm malé šipky, které sahají až ke konci, kde jste letovali drát. Vezměte další proužek tak, aby šipky směřovaly opačným směrem, a pájejte vodič přicházející ze stopy GND na stopu GND druhého, +5 V na +5 V atd. Opakujte to a ujistěte se, že šipky mění směr po každé sekci, takže pokud byste je měli sledovat, kličkovalo by se nahoru a dolů a aby se to nakonec dalo natáhnout na dlouhý pruh. Jakmile je všech 14 pásků pájeno, rozložte je a zarovnejte a zarovnejte tak, aby diody LED tvořily mřížku. Poté je držte pohromadě pomocí metody, kterou lze později odstranit bez poškození proužku. Použil jsem skotskou pásku. Je dostatečně lepkavý, aby udržel vše pohromadě, ale ne tak lepivý, aby zanechal zbytky. Nedoporučuji nic trvalého, jako sponky nebo lepicí pásky. Jakmile je vše spojeno páskou, připájejte vodič z pásku na spodní straně +5V k bezprostředně vedle něj. Opakujte, dokud celé dno nebude mít kohoutky napájení po celé délce. Důvodem je, aby se obrazovka při postupu řady LED neztmavila.

Krok 4: Pájení základní elektroniky

Pájení základní elektroniky
Pájení základní elektroniky
Pájení základní elektroniky
Pájení základní elektroniky
Pájení základní elektroniky
Pájení základní elektroniky

Připájejte rozpojovací desku USB B (BOB) ke konektoru USB B. Připájejte příslušné vodiče ke konektoru USB A. Doporučuji podívat se na pin-out konektoru, který najdete na tomto webu, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Nedělejte si starosti s tím, kam právě pájet ostatní konce vodičů na konektoru USB A; které budou zahrnuty v kroku ovladače. Vystřihněte datový konektor z pásku, konektor samice, nikoli konektor samec (Zásuvka se dostane z druhého konce). Zapojte zástrčky konektoru JST na konce baterie tak, aby červená přecházela do červené a černá do černé. Roztáhněte smršťovací bužírku přes odkryté dráty (nasunete před pájením), aby se nezkratovaly nebo nepoužívaly něco jiného, jako je elektrická páska nebo horké lepidlo. Připájejte některé vodiče ke všem samičím konektorům JST. Ujistěte se, že máte zapojený mužský konec, aby se kolíky neposouvaly. Dávejte pozor na polaritu a ujistěte se, že vodiče odpovídají konektorům. Znovu připájejte vodiče k vysokonapěťovému konektoru (ale ne k jeho páru), ujistěte se, že se všechny barvy shodují a že jsou zapojeny dohromady, aby se zabránilo posunu kolíků. Sestavu konektoru/drátu spojte pouze tak, aby byla zapojena do série, ne paralelně, aby se dostala za prahové napětí pro regulátor výkonu. Pájejte kladný vodič na záporný vodič druhé sestavy, takže nyní máme jeden nepájený kladný vodič a jeden záporný nepájený vodič a dva pájené vodiče jsou připájeny k různým konektorům. Vezměte záporný vodič a uložte jej k pájení na záporný vodič jinde. Nyní vezměte kladný vodič a připájejte jej k přepínači Pokud existují tři nebo více pinů (nebo více než jeden způsob, jak být „zapnuto“), připájejte jej ke střednímu kolíku. Všimněte si, že „střední kolík“nemusí být fyzicky uprostřed. Způsob, jak to identifikovat, je najít pin, který, když je spínač v jakémkoli stavu, bude vždy připojen k jinému pinu. Pokud žádný pin není takový, pak máte velmi speciální přepínač; stačí jej připojit k jakémukoli kolíku a ujistit se, že další vodič připájený k přepínači bude připojen k tomuto vodiči alespoň v jednom zapnutém stavu. Nyní připájejte kladný přívodní vodič na regulátoru napětí k opačnému konci spínače, jak je uvedeno výše. Pájejte kladné napětí na kladný konec nepájeného vysokonapěťového konektoru. Vezměte záporný přívodní vodič a připájejte jej na záporný konec konektoru vysokého proudu. Nyní budeme pájet energii paralelně k pásku Arduino a Power. Nyní vezměte výstupní vodiče regulátoru napětí a připájejte dva kusy drátu na kladný i záporný konec, aby vyšly ve tvaru Y. Pájejte dvoukolíkový konektor na kladný a záporný vodič sestavy LED pásku. Nezáleží na tom, jaký typ konektoru používáte, může to být JST nebo v mém případě nějaký napájecí/zvukový kabel nebo něco (nejsem si jistý a omlouvám se, že nemám žádné obrázky). Pájejte jeden z kladných napájecích vodičů na kladný konec opačného konektoru pro světelný pás a jeden ze záporných vodičů na druhý kolík na konektoru. Udělejte to samé, ale pro sestavu konektoru/vodiče JST. Po celou dobu pamatujte na izolaci pájených spojů, aby nedošlo ke zkratu. Nyní k tomu, co dělat s konektorem USB B. Pájejte kladný vodič do 5v otvoru na Arduino Pro Mega. Vezměte uzemňovací vodič a připájejte jej do otvoru GND. Vezměte D+ a připájejte jej k digitálnímu pinu (nebo v tomto případě k otvoru) 40. Pájku D- k analogovému pinu 15. Pájejte datový konec zásuvkového konektoru, který se spojuje s konektorem LED páskového konektoru na datový kolík 6 a uzemňovací vodič na pin GND. Maskovací nebo skotská páska funguje skvěle pro držení vodičů na desce, aby nevypadly, když se převrátí a pájí. Nyní vezměte chvilkové tlačítko a připájejte vodič z jednoho konce ke kolíku VCC (nebo jakémukoli výstupnímu kolíku napětí) a druhým koncem ke kolíku RESET.

Krok 5: Ovladač

Ovladač
Ovladač
Ovladač
Ovladač
Ovladač
Ovladač

První je výběr správného tvaru pro začátek. Vše závisí na tom, jak chcete mít ovladač strukturovaný. Chtěl jsem více plochého ovladače, takže jsem dostal kus 3 1/2 "x 3/4" prkna. uspořádejte díly způsobem, který se jeví jako vhodný a pohodlně se s ním pracuje. Pomocí francouzské křivky, kompasu, trojúhelníku a rovné hrany nakreslete, kam by všechny kousky měly směřovat. Vystřihněte základní obrys pomocí řezacího nástroje, který si vyberete. Nejlepší by byla pila na zákaz, ale já jsem použil pilu, která fungovala dobře. Okraje obrouste, aby plynule přecházely, a poté broušte rohy, aby to bylo pohodlnější. Vyvrtejte otvor pro spínač, poté vybrouste, sekáčem a/nebo Dremelem vytáhněte jakoukoli část ve spodní části, která bude odpovídat. Snažte se nedělat nic s vrškem a pouze vybrousit, co potřebujete, abyste do něj mohli zapadnout kroucením, úhlem nebo čímkoli jiným, aby se dostal dovnitř. Jakmile je uvnitř, připevněte jej plastovou maticí a připevněte přepínač. Vyvrtejte oblast pro knoflík potenciometru, aby se vešla dovnitř, a vysekejte oblast, aby se mohla zapustit a zapadnout celou cestu. Vyvrtejte několik otvorů, aby jej mohl držet šroub. Ohněte malé kousky konektoru USB A, aby se jeho celková šířka trochu zvětšila (podívejte se na obrázky). Vytáhněte část konektoru a postupně kontrolujte, zda konektor sedí. Super přilepte konektor do slotu. Vezměte malý kousek plastu a ustřihněte jej do tvaru, který se vejde přes konektor (podívejte se na obrázky), a poté jej sešijte na dřevo. Odřízněte všechny kousky, které by mohly překážet. Zašroubujte potenciometr a připevněte knoflík. Pozitivní vodič připájejte na jeden z konců potenciometru (nikoli proměnnou část) a záporný vodič na opačný konec. Pájejte D-pin na variabilní pin na hrnci. Pájecí drát z kolíku na hrnci s kladným vodičem na jeden z kolíků na tlačítku. Pájejte D+ na druhý kolík na tlačítku. Zastřihněte náhradní drát a izolujte kusy, které to potřebují.

Krok 6: Košile

Košile
Košile
Košile
Košile
Košile
Košile

Najděte si pohodlnou košili, která propustí světlo. Vybral jsem si toto základní bílé tričko. Nezáleží na barvě nebo stylu, pokud je světlo viditelné prosvítat zevnitř. Grafiku na přední straně však nedoporučuji. Rozložte na košili vše, co vám pomůže rozhodnout se, kde to chcete, a pomocí nakresleného značkovacího nástroje to nakreslete. Já (myslím některé lidi, které znám) mám tužku určenou pro značení tkanin, která se snadno vymývá. Změřte velikost baterií, pouzdra ovladače a obrazovky a vystřihněte kousky papíru, aby odpovídaly. Poté přišpendlete papír na kus nepružné látky. K tomu dobře funguje vazba. Poté vystřihněte obdélník, který ponechá asi čtvrt palce na šev po celém obvodu. Poté použijte kus papíru jako vodítko a přežehlete záhyby do látky. Nyní lze papír vyjmout. Na části kapsy, která bude nahoře, ji třikrát přeložte. Žehlete a sešpendlete, aby drželo na svém místě. Uprostřed záhybu našijte vzhled. Nyní vezměte roh a složte jej tak, aby nezašité hrany kolmé k sobě byly rovnoběžné a našijte vzhled podél vyžehlené rýhy nejblíže rohu (Obrázky opravdu pomáhají). Udělejte to také pro druhý roh. Pokud budete mít z kapsy přepínací přepínač, našijte otvor na knoflík ve spodní části kapsy, kde se spínač dotkne. Poté sešijte knoflíkový otvor a vystřihněte střední část. Opravdu nemohu poskytnout podrobné pokyny, protože jsem měl skvělý nástroj pro vytváření knoflíkových děr. Jen se ujistěte, že uděláte otvory, než se kapsa našije. Vezměte špendlíky a propíchněte je skrz košili v rozích značení kapsy. Vezměte kapsu a položte každý roh na špendlík (na vnitřní stranu košile), ponechte čtvrt palce na šev a připněte jej na košili. Po připnutí kapsy. odstraňte špendlíky, které nedrží kapsu, a našijte kapsu na košili. Opakujte pro všechny kapsy. U velké kapsy držící obrazovku ponechte mezeru pro dráty ve spodní části kapsy. Chcete -li dát do košile díru, označte místo a vezměte žehličku na podložku (s lesklejší částí na tkanině) a nažehlete ji. Poté pro malý otvor (jako to, co jsem použil pro přepínací spínač) vytvořte otvor pro knoflíky. U větší díry označte obrys a použijte cikcakový steh podél čáry (nebo křivky nebo co máte) a vystřihněte střední část. Pokud chcete, můžete pomocí podvazků udržet váhu kapes, dvě spony držící kapsy na přední straně a zadní sponu na kalhoty. Také jsem dostal malý rukáv látky našitý přes části podvazků, které se budou dotýkat mé kůže. Dvě košile mohou být příliš horké, takže jsem se odhlásil a použil malý látkový rukáv.

Krok 7: Programování

Programování
Programování

A tady je kód. Existuje několik částí, které jsou dobře komentované, ale drtivá většina nikoli. Pokud máte dotazy k různým částem, můžete mi buď sdělit číslo řádku (s #include jako řádek číslo jedna), nebo mi dát kopii řádku (linek) a funkce, ve které se nachází (jako loop () nebo compMovePaddle ()) a udělám vše, co je v mých silách, abych vám to vysvětlil, poté přidám komentář ke kódu, který to vysvětluje. #include #define PIN 6 // říká, které jsou vstupní piny pro hru int buttonPin = 40; // diktuje skóre, uchovávané v bianary poli, protože je esier int playerScore [5] = {0, 0, 0, 0, 0}; int compScore [5] = {0, 0, 0, 0, 0}; // diktuje směr koule int bvd = 0; // 0 je dolů, 1 je nahoru int bhd = 0; // 0 je vpravo, 1 je vlevo // diktuje pozici koulí int bvp = 8; int bhp = 6; // zkontroluje, zda je míč v rychlém režimu boolean fast = false; // zkontroluje, zda se jedná o skóre. boolean cIsPoint = false; boolean pIsPoint = false; // polohy pádel int cPaddle = 0; int pPaddle = 0; dlouho předchozí Millis = 0; dlouho předchozíMillisForComp = 0; // nastavte časy zpoždění pro rychle a pomalu se pohybující koule na "Int" v normInt a fastInt je pro interval int normInt = 50; int fastInt = 10; // slouží ke kontrole výhry. 1 je výhra hráče, -1 při počítačové výhře a 0 ještě nic nenastalo int win = 0; // zbavit se chyby. použitý v příkazu addOne a nikde jinde. int který = 0; // Věc zobrazená před startem, -1 je útěk int pongPlay = {1, 2, 3, 4, 10, 11, 12, 13, 16, 18, 20, 27, 29, 33, 34, 41, 42, 61, 62, 63, 70, 71, 72, 76, 85, 86, 88, 91, 92, 94, 100, 101, 102, 103, 131, 132, 136, 139, 144, 145, 146, 147, 148, 161, 162, 166, 175, 183, 185, 192, 194, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, -1}; // pokud vyhrajete int youWin = {1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 27, 33, 34, 39, 46, 47, 48, 49, 54, 55, 56, 57, 58, 77, 78, 79, 84, 88, 91, 92, 93, 94, 95, 99, 103, 106, 110, 114, 118, 130, 131, 132, 144, 145, 146, 147, 151, 162, 163, 168, 169, 170, 177, 181, 192, 193, 204, 205, 206, 207, -1}; // pokud prohrajete, ztratíte = {1, 3, 5, 16, 17, 18, 19, 20, 24, 26, 28, 31, 32, 32, 33, 34, 35, 39, 46, 47, 48, 49, 62, 65, 77, 78, 79, 84, 86, 88, 91, 94, 99, 103, 106, 110, 122, 123, 124, 130, 131, 132, 144, 148, 152, 153, 154, 162, 163, 168, 169, 170, 181, 192, 193, 204, 205, 206, 207, 208, -1}; // nastaví LED pásek Adafruit_NeoPixel strip = Adafruit_NeoPixel (210, PIN, NEO_RGB + NEO_KHZ800); // nastavení, neotáčí žádný pin 40 pro vstup, spustí pruh, zobrazí // zprávu a zobrazí ji. neplatné nastavení () {pinMode (buttonPin, INPUT); strip.begin (); pro (int i = 0; pongPlay > 0; i ++) {strip.setPixelColor (pongPlay , strip. Color (0, 0, 255)); } strip.show (); zpoždění (5000); while (digitalRead (buttonPin) == LOW) {// Je to past! (dokud není tlačítko stisknuto.)}} void loop () {clearScreen (); // nakreslí pádla k zobrazení skóre pro (int i = 0; i <5; i ++) {if (playerScore == 1) {strip.setPixelColor (204-i, strip. Color (255, 255, 255)); } else if ((playerScore == 0)) {strip.setPixelColor (204-i, strip. Color (0, 255, 0)); } if (compScore == 1) {strip.setPixelColor (5+i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (5+i, strip. Color (255, 0, 0)); }} // nakreslí míč do výchozí polohy strip.setPixelColor (98, strip. Color (255, 255, 255)); strip.show (); // rozhodne, zda míček jde nahoru nebo dolů, zatímco (pIsPoint == false && cIsPoint == false) {clearScreen (); unsigned long currentMillis = millis (); // přiřadí pozici pádla hráče pPaddle = checkPaddlePos (); // zkontroluje další pozici checkNext (); // pohyb míčku if (fast == false) {if (currentMillis - previousMillis> normInt) {previousMillis = currentMillis; moveBall (); }} else if (fast == true) {if (currentMillis - previousMillis> fastInt) {previousMillis = currentMillis; moveBall (); }} // nakreslete míč if (bhp%2! = 0) {strip.setPixelColor (bhp*15+14-bvp, strip. Color (255, 255, 255)); } else if (bhp%2 == 0) {strip.setPixelColor (bhp*15+bvp, strip. Color (255, 255, 255)); } // pohyb pádla počítače compMovePaddle (); // draw's the paddles drawPaddles (); // ve skutečnosti dal všechno nahoru.strip.show (); // kontrola, zda byl bod zaznamenán, pokud (pIsPoint == true) {which = 0; bhd = 0; addOne (); přestávka; } else if (cIsPoint == true) {which = 1; bhd = 1; addOne (); přestávka; }} if (win == 1) {clearScreen (); for (int i = 0; youWin > 0; i ++) {strip.setPixelColor (youWin , strip. Color (255, 0, 0)); strip.show (); } zpoždění (5 000); pro (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } výhra = 0; } else if (win == -1) {clearScreen (); for (int i = 0; youLose > 0; i ++) {strip.setPixelColor (youLose , strip. Color (0, 255, 0)); strip.show (); } zpoždění (5 000); pro (int i = 0; i <5; i ++) {playerScore = 0; compScore = 0; } výhra = 0; } pIsPoint = false; cIsPoint = false; bvp = 8; bhp = 6; bvd = random (0, 2); // 0 dolů, 1 rychle nahoru = false; } // AI pro hru neplatí compMovePaddle () {unsigned long currentMillis = millis (); if (currentMillis - previousMillisForComp> 51) {previousMillisForComp = currentMillis; if (bvp> = 13 && 10-cPaddle 0) {cPaddle--; } else if (bvp = 0 && cPaddle <10) {cPaddle ++; } else if (bvp-3> 10-cPaddle && 10-cPaddle> = 0 && cPaddle> 0) {cPaddle--; } else if (bvp <10-cPaddle && 10-cPaddle <= 10) {cPaddle ++; }}} // přesouvá míč neplatný moveBall () {if (bhd == 0) {bhp--; } else if (bhd == 1) {bhp ++; } if (bvd == 0) {bvp--; } else if (bvd == 1) {bvp ++; }} // přidá jeden do pole. Pokud whichOne je 0, přidá se ke skóre hráče. Pokud je 1, přidá do počítačů neplatné addOne () {if (which == 0) {// pokud je to skóre hráče // Přidejte jedno. Toto je jednoduchý způsob, jak vím. for (int i = 0; i <5; i ++) {// smyčka if (playerScore == 0) {// pokud je tato hodnota nulová playerScore = 1; // udělejte 1 přestávku; // pak zmizet} else {// pokud je to 1 hráč; i ++) {if (compScore == 0) {compScore = compScore +1; přestávka; } else {compScore = 0; }}} // Zkontroluje, zda někdo vyhrál. if (compScore [0] == 1 && compScore [2] == 1 && compScore [4] == 1) {win = -1; } else if (playerScore [0] == 1 && playerScore [2] == 1 && playerScore [4] == 1) {win = 1; }} // zkontroluje koule další pozice neplatné checkNext () {// zkontroluje, zda byl dosažen bod, pokud (bhp == 13) {pIsPoint = true; } else if (bhp == 0) {cIsPoint = true; } // pokud byl bod zaznamenán, přeskočte zbytek těchto věcí, pokud (pIsPoint == false || cIsPoint == false) {// kontroluje míč vertikálně, pokud (bvp+bvd == 15) {bvd = 0; } else if (bvp+bvd == 0) {bvd = 1; } // kontroluje horizont míče if (bhp+bhd == 13) {// první na straně počítače if (bvp> = 10-cPaddle && bvp <= 10-cPaddle+4) {if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; } rychle = nepravda; } else if (bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5) {if (bvp! = 0 && bvp! = 14) {if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; } else if (bvp == 0 || bvp == 14) {bhd = 1; } rychle = nepravda; }} else if (bhp+bhd == 1) {// then on the player page if (bvp> = pPaddle && bvp <= pPaddle+4) {// is it hiting the paddle in a normal spot? // odrazit míč! if (bhd == 1) {bhd = 0; } else if (bhd == 0) {bhd = 1; }} else if (bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle) {// is hitting the paddle on the corner if (bvp! = 0 && bvp! = 14) {// is it ne nahoře nebo dole dole? // Odrazte míč! if (bvd == 0) {bvd = 1; } else if (bvd == 1) {bvd = 0; } bhd = 1; rychle = pravda; } else if (bvp == 0 || bvp == 14) {// je nahoře nebo dole dole? // odrazit míč! bhd = 0; fast = true; // nastavení hodnoty na pozdější pohyb míče}}}}} int checkPaddlePos () {// přečte pot a podle toho rozhodne o poloze pádla, pokud (analogRead (A15) <93) {return 0; } else if (analogRead (A15) <186) {return 1; } else if (analogRead (A15) <279) {return 2; } else if (analogRead (A15) <372) {return 3; } else if (analogRead (A15) <465) {return 4; } else if (analogRead (A15) <558) {return 5; } else if (analogRead (A15) <652) {return 6; } else if (analogRead (A15) <745) {return 7; } else if (analogRead (A15) <837) {return 8; } else if (analogRead (A15) <= 931) {return 9; } else if (analogRead (A15) <= 2014) {return 10; }} neplatné drawPaddles () {// nakreslí pádla na správné místo a zobrazí skóre na pádle pro (int i = 0; i <5; i ++) {if (playerScore == 1) {proužek. setPixelColor (pPaddle+i, strip. Color (255, 255, 255)); } else if ((playerScore == 0)) {strip.setPixelColor (pPaddle+i, strip. Color (255, 0, 0)); } if (compScore == 1) {strip.setPixelColor (199+cPaddle-i, strip. Color (255, 255, 255)); } else if ((compScore == 0)) {strip.setPixelColor (199+cPaddle-i, strip. Color (0, 255, 0)); }}} void clearScreen () {for (int i = 0; i <= 210; i ++) {strip.setPixelColor (i, strip. Color (0, 0, 0)); } strip.show (); }

Krok 8: Hotový výrobek

Dokončený produkt
Dokončený produkt
Dokončený produkt
Dokončený produkt

A hotovo, tričko!

Doporučuje: