Sommario:

Schermo flessibile che gioca a Pong su una maglietta: 8 passaggi (con immagini)
Schermo flessibile che gioca a Pong su una maglietta: 8 passaggi (con immagini)

Video: Schermo flessibile che gioca a Pong su una maglietta: 8 passaggi (con immagini)

Video: Schermo flessibile che gioca a Pong su una maglietta: 8 passaggi (con immagini)
Video: Maranza cerca di prendermi la moto 2024, Dicembre
Anonim
Pong che gioca a schermo flessibile su una maglietta
Pong che gioca a schermo flessibile su una maglietta
Pong che gioca a schermo flessibile su una maglietta
Pong che gioca a schermo flessibile su una maglietta
Pong che gioca a schermo flessibile su una maglietta
Pong che gioca a schermo flessibile su una maglietta

Questo è il mio costume di Halloween per l'anno 2013. È in lavorazione da circa un anno e ci sono volute parecchie ore uomo per crearlo. Lo schermo è di 14 x 15 pixel, quindi una risoluzione piuttosto bassa ma può comunque fare alcune cose divertenti. È fisicamente flessibile in tutte le direzioni, sebbene non possa essere piegato senza danni. Ha un controller composto da un singolo pulsante e slide pot, collegato a un pro mega tramite USB. Per mantenerlo in vita a lungo impiega due mostruose batterie da 2200 mAh cablate in serie per ottenere la tensione necessaria, e poi un regolatore da 5 Volt per renderlo utilizzabile. Tutta l'elettronica è posizionata nelle tasche all'interno della maglietta in modo che possano essere rimosse e quindi la maglietta può essere lavata. Svolge un gioco funzionale di pong. Per prima cosa abbellisce uno con le parole "PONG PLAY" in adorabili caratteri blu usando una versione modificata del font Tom Thumb (può essere trovato su https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Dopo cinque secondi può essere data l'opzione di premere il pulsante per andare avanti, o di non premere il pulsante e lasciare alle spalle un'esperienza perfettamente positiva. Quando si sceglie di premere il pulsante, il gioco inizia. Una paletta rossa a destra è la paletta del computer e la paletta verde a destra è la paletta del giocatore, che è controllata dal piatto scorrevole per spostarsi su e giù. La palla rimbalza mentre ogni lato cerca di segnare un punto. Il giocatore può colpire la palla con il bordo della racchetta per accelerarla (una bella caratteristica) mentre il computer non può farlo, e invece finisce per essere bloccato con un movimento leggermente più lento della palla. Quando viene segnato un punto, un pixel diventa bianco sulla paletta dei lati del punteggio. Conta in binario dal basso. dove il verde o il rosso è zero e il bianco è 1. 21 è il punteggio da vincere (o perdere a seconda di chi ottiene 21 punti) e quindi quando la racchetta del giocatore legge 10101, viene visualizzato il testo "VOI VINCI". Ancora una volta in Pollicino modificato. Lo stesso accade ma con "PERDI" visualizzato invece. Dopo una vittoria o una sconfitta, il gioco ricomincia dal punto subito dopo Pong Play. Per riavviare completamente si preme il pulsante di riavvio sulla "Magic Box", nota anche come la-scatola-con-tutta-l'elettronica-tranne-lo-schermo.

Passaggio 1: materiali e strumenti

Materiali e strumenti
Materiali e strumenti
Materiali e strumenti
Materiali e strumenti

Le cose contrassegnate con un * sono facoltative ma consigliate E quindi in nessun ordine particolare… Materiali: 4 yarde di Adafruit Neopixle Striscia da 60 pixel per metro 1 T-shirt *1 paio di bretelle 1/2 yarda di tessuto sarà più che sufficiente (non è preferibile un tessuto elastico) Cavo USB A maschio da 6 piedi a USB B maschio 1 Connettore USB A femmina 3 Connettori JST femmina a 2 pin 4 Caricabatteria a 2 pin JST maschio 2 batterie da 6600 mAh 1 Pulsante stile arcade 1 arduino pro-mega 1 header FTDI 1 connettore USB B femmina con breakout board 1 interruttore on/off (a levetta) 1 interruttore di reset (a levetta o momentaneo) 1 potenziometro a scorrimento *1 manopola del potenziometro a scorrimento 1 coppia di connettori ad alto amplificatore *1 custodia di progetto 1 regolatore di tensione 5V 3+ amp un piccolo un po' di plastica un po' di saldatura un po' di filo un po' di filo *un po' di colla a caldo *un po' di elastico un po' di tempo (forse un po' più di "un po'") un po' di perseveranza (probabilmente avrai bisogno di un bel po' di questo in realtà) un po' di tubo termoretraibile o nastro isolante un po' di super colla un po' di ferro sul supporto Strumenti *Helping Hands Mano normale s (o qualcuno con accesso ad essi) Saldatore * Pistola per colla a caldo Dremel o carta vetrata Scalpello Spelafili Tagliafili Pistola per punti Cacciavite Perni per seghe Macchina da cucire Forbici per tessuti

Passaggio 2: tagliare la striscia LED in strisce più piccole

Taglia la striscia LED in strisce più piccole
Taglia la striscia LED in strisce più piccole
Taglia la striscia LED in strisce più piccole
Taglia la striscia LED in strisce più piccole
Taglia la striscia LED in strisce più piccole
Taglia la striscia LED in strisce più piccole

Usa il tuo utensile da taglio preferito e taglia la striscia in 14 segmenti, ciascuno lungo 15 pixel. Taglia solo tra le tracce di rame, etichettate come "DO" "DIN" "+5V" e "GND". Se è già saldato sul rame, è appena tagliato. Cerca di non tagliare troppo il rame esposto, ma se lo intacca un po 'va bene. Una volta che tutte e 14 le strisce sono state tagliate, taglia un po' di gomma da ciascuna estremità per toglierla di mezzo per saldare le strisce.

Passaggio 3: saldare lo schermo insieme

Saldare lo schermo insieme
Saldare lo schermo insieme
Saldare lo schermo insieme
Saldare lo schermo insieme
Saldare lo schermo insieme
Saldare lo schermo insieme

Prendi il filo e taglialo in segmenti di circa 3,5 pollici (9 cm). Nel mio caso ho tre colori diversi per rendere più facile mantenere la linea dritta durante la saldatura, ma un colore funzionerebbe bene. Avrai bisogno di circa 40 di questi piccoli ragazzi, ma tagliane un altro paio per ogni evenienza. Una volta che hai finito di tagliare il filo, spela e stagna le estremità (se hai esperienza di saldatura puoi passare al paragrafo successivo), nel senso che dopo aver rimosso un po' di plastica metti un po' di saldatura alle estremità di ogni filo. Non riscaldare la saldatura e prova a spostarti sul filo, riscalda con il tuo saldatore dal fondo del rame e metti la saldatura sopra. Sii paziente e attendi che il filo caldo sciolga la saldatura. È allettante stringere il saldatore alla saldatura per iniziare (la mia impazienza e so esattamente come ti senti) ma la saldatura non si attaccherà altrettanto. Fai lo stesso per le tracce di rame esposte su ciascuna estremità delle sezioni della striscia. Se ha già la saldatura non preoccuparti. Per la striscia potresti voler costruire un piccolo tumulo per renderlo più facile in seguito. Quando lavori con la striscia, fallo velocemente e cerca di non spendere troppo tempo applicando calore alla striscia. Fai solo ciò che devi fare per fondere la saldatura sulla traccia. Saldare un filo su ogni traccia fino alla fine della prima striscia (la prima striscia è quella con i fili e il connettore, saldarla all'estremità esposta). Se guardi la striscia vedrai delle piccole frecce su di essa che salgono fino all'estremità dove hai saldato il filo. Prendi un'altra striscia in modo che le frecce puntino nella direzione opposta e salda il filo proveniente dalla traccia GND alla traccia GND dell'altra, dal +5V al +5V e così via. Ripeti questo assicurandoti che le frecce cambino direzione dopo ogni sezione in modo che, se dovessi seguirle, farebbe zig zag su e giù e alla fine potrebbe essere allungato su una lunga striscia. Una volta che tutte le 14 strisce sono state saldate, disponile e allineale in modo che i LED formino una griglia. Quindi tienili insieme usando un metodo che può essere rimosso in seguito senza danneggiare la striscia. Ho usato lo scotch. È abbastanza appiccicoso da tenere tutto insieme ma non così appiccicoso da lasciare residui. Non consiglio nulla di permanente, come graffette o nastro adesivo. Una volta che tutto è stato fissato insieme, saldare un filo dalla striscia in basso +5V a quella immediatamente accanto. Ripeti fino a quando l'intero fondo ha i rubinetti di alimentazione che attraversano completamente. In questo modo lo schermo non si oscura man mano che la linea di LED avanza.

Passaggio 4: saldatura dell'elettronica di base

Saldatura dell'elettronica di base
Saldatura dell'elettronica di base
Saldatura dell'elettronica di base
Saldatura dell'elettronica di base
Saldatura dell'elettronica di base
Saldatura dell'elettronica di base

Saldare la scheda breakout USB B (BOB) al connettore USB B. Saldare i cavi appropriati al connettore USB A. Consiglio di guardare il pin-out del connettore come si trova su questo sito Web, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Non preoccuparti di dove saldare le altre estremità dei fili sul connettore USB A in questo momento; che sarà trattato nel passaggio del controller. Tagliare il connettore dati dalla striscia, il connettore femmina, non il connettore maschio (Il connettore femmina è ottenuto dall'altra estremità). Saldare i connettori JST maschi alle estremità della batteria in modo che il rosso diventi rosso e il nero diventi nero. Sciogli il tubo termoretraibile sui fili esposti (scivolato prima di saldare) in modo che non si accorcino o utilizzi qualcos'altro come nastro isolante o colla a caldo. Saldare alcuni fili a tutti i connettori JST femmina. Assicurati di avere un'estremità maschio collegata in modo che i pin non si spostino. Fare attenzione alla polarità e assicurarsi che i fili corrispondano ai connettori maschi. Saldare i fili a un connettore ad alta tensione (ma non è la coppia), ancora una volta, assicurandosi che tutti i colori corrispondano e che siano collegati insieme per evitare lo spostamento dei pin. Saldare il gruppo connettore/cavo solo femmina in modo che siano cablati in serie, non in parallelo, per superare la tensione di soglia per il regolatore di potenza. Quindi, saldare il filo positivo al filo negativo dell'altro gruppo, quindi ora abbiamo un filo positivo non saldato e un filo negativo non saldato e i due fili saldati sono saldati a connettori diversi. Prendi il filo negativo e salvalo per essere saldato al filo negativo altrove. Ora prendi il filo positivo e saldalo all'interruttore Se ci sono tre o più pin (o più di un modo di essere "acceso"), saldalo al pin centrale. Nota che il "pin centrale" potrebbe non essere fisicamente al centro. Il modo per identificarlo è trovare il pin che, quando l'interruttore è acceso in qualsiasi stato, sarà sempre collegato a un altro pin. Se nessun pin è come questo, hai un interruttore molto speciale; basta collegarlo a qualsiasi pin e assicurarsi che il filo successivo saldato all'interruttore sia collegato a quel filo in almeno uno stato acceso. Ora saldare il filo di ingresso positivo sul regolatore di tensione all'estremità opposta dell'interruttore, come discusso sopra. Saldare la tensione positiva all'estremità positiva del connettore ad alta corrente non saldato. Prendi il cavo di aspirazione negativo e saldalo all'estremità negativa del connettore ad alta corrente. Ora andremo a saldare l'alimentazione in parallelo all'Arduino e alla ciabatta. Ora prendi i fili di uscita del regolatore di tensione e salda due pezzi di filo su entrambe le estremità positiva e negativa in modo che escano a forma di Y. Saldare un connettore a due pin ai fili positivo e negativo del gruppo della striscia led. Non importa quale tipo di connettore usi, può essere JST o nel mio caso un cavo di alimentazione/audio o qualcosa del genere (non ne sono sicuro e mi scuso per non avere immagini). Saldare uno dei fili di alimentazione positivi all'estremità positiva del connettore opposto per la striscia luminosa e uno dei fili negativi all'altro pin del connettore. Fai lo stesso ma per un connettore JST maschio/assieme cavo. Per tutto il tempo ricordati di isolare i giunti di saldatura per evitare cortocircuiti. Ora su cosa fare con il connettore USB B. Saldare il filo positivo a un foro da 5 V sull'Arduino Pro Mega. Prendi il filo di terra e saldalo a un foro GND. Prendi il D+ e saldalo al pin digitale (o in questo caso, foro) 40. Salda il D- al pin analogico 15. Salda l'estremità dati del connettore femmina che si accoppia con il connettore maschio della striscia LED al pin dati 6 e il filo di terra a un pin GND. Il nastro adesivo o la mascheratura funzionano benissimo per tenere i fili sulla scheda in modo che non cadano quando viene capovolto per essere saldato. Ora prendi un pulsante momentaneo e salda un filo da un'estremità al pin VCC (o qualsiasi pin di uscita di tensione) e l'altra estremità al pin RESET.

Passaggio 5: controllore

Controllore
Controllore
Controllore
Controllore
Controllore
Controllore

Il primo è scegliere la forma giusta con cui iniziare. Tutto dipende da come vuoi che sia strutturato il controller. Volevo più di un controller piatto, quindi ho preso un pezzo di tavola da 3 1/2 "per 3/4". disporre le parti in un modo che sembri adatto e comodo con cui lavorare. Usa una curva francese, un compasso, un triangolo e una riga per disegnare dove dovrebbero andare tutti i pezzi. Ritaglia il contorno di base usando lo strumento da taglio che preferisci. Una sega circolare sarebbe la cosa migliore, ma ho usato una sega da traforo, che ha funzionato bene. Carteggiare i bordi per farli passare dolcemente, quindi carteggiare gli angoli per renderli più comodi. Praticare il foro per l'interruttore, quindi carteggiare, scalpellare e/o Dremel qualsiasi parte sul fondo che lo renderà adatto. Cerca di non fare nulla con la parte superiore e carteggia solo ciò di cui hai bisogno per essere in grado di adattarlo ruotando, angolando o qualsiasi altra cosa per farlo entrare. Una volta inserito, fissalo con il dado di plastica e fissa il interruttore. Perforare l'area in cui far passare la manopola del potenziometro e scalpellare un'area in modo che possa affondare e adattarsi completamente. Praticare dei fori in modo che una vite possa trattenerlo. Piegare i piccoli pezzi del connettore USB A che aumentano leggermente la larghezza generale (guarda le immagini). Scalpellare una parte per il connettore, controllando progressivamente per assicurarsi che il connettore si adatti. Super incollare il connettore nel suo slot. Prendi un pezzetto di plastica e taglialo in una forma che si adatti al connettore (guarda le immagini), quindi fissalo al legno. Taglia tutti i pezzi che possono intralciare. Avvitare il potenziometro e fissare la manopola. Saldare il filo positivo a una delle estremità del potenziometro (non la parte variabile) e il filo negativo all'estremità opposta. Saldare il pin D al pin variabile sulla pentola. Saldare un filo dal pin sul vaso con il filo positivo a uno dei pin sul pulsante. Saldare D+ all'altro pin del pulsante. Tagliare il filo di ricambio e isolare i pezzi che ne hanno bisogno.

Passaggio 6: camicia

Camicia
Camicia
Camicia
Camicia
Camicia
Camicia

Trova una maglietta comoda che lasci passare la luce. Ho scelto questa maglietta bianca basic. Non importa il colore o lo stile, purché la luce possa essere vista splendere dall'interno. Tuttavia non consiglio la grafica sul davanti. Disponi tutto sulla maglietta per aiutarti a decidere dove vuoi e usa uno strumento di marcatura cancellabile per disegnarla. Io (cioè alcune persone che conosco) ho una matita pensata per segnare i tessuti che si lava facilmente. Misura le dimensioni delle batterie, della custodia del controller e dello schermo e ritaglia dei pezzi di carta in modo che corrispondano. Quindi appuntare la carta su un pezzo di tessuto non elastico. Una trama funziona bene per questo. Quindi ritaglia il rettangolo lasciando circa un quarto di pollice per una cucitura tutto intorno. Quindi, usando il pezzo di carta come guida, stira le pieghe nel tessuto. Ora la carta può essere rimossa. Sulla parte della tasca che sarà la parte superiore piegala su se stessa tre volte. Stira e appuntalo per tenerlo in posizione. Cucire un punto lungo tutto il centro della piega. Ora prendi l'angolo e piegalo in modo che i bordi non cuciti perpendicolari tra loro siano paralleli e cuci una parvenza lungo la piega stirata più vicina all'angolo (le immagini aiutano davvero). Fallo anche per l'altro angolo. Se per caso avrai un interruttore a levetta che esce da una tasca, cuci un'asola alla base della tasca dove l'interruttore tocca. Quindi cucire un'asola e ritagliare la parte centrale. Non posso dare istruzioni dettagliate perché avevo uno strumento fantastico per fare le asole. Assicurati solo di fare i buchi prima di cucire la tasca. Prendi degli spilli e infilali nella maglietta agli angoli dei segni per la tasca. Prendi la tasca e metti ogni angolo in uno spillo (all'interno della maglietta), lasciando un quarto di pollice per la cucitura, e appuntalo alla maglietta. Dopo che la tasca è stata appuntata. rimuovere gli spilli che non trattengono la tasca e cucire la tasca alla maglietta. Ripetere per tutte le tasche. Per la grande tasca che tiene lo schermo, lasciare uno spazio per i fili nella parte inferiore della tasca. Per fare un buco nella camicia segnare il punto e prendere un ferro da stiro sul retro (con la parte più lucida sul tessuto) e stirarlo. Quindi, per un piccolo foro (come quello che ho usato per l'interruttore a levetta), fai un'asola. Per un buco più grande, segna il contorno e usa un punto a zigzag lungo la linea (o curva o cosa hai) e ritaglia la parte centrale. Se vuoi puoi utilizzare le bretelle per sostenere il peso delle tasche, le due clip che tengono le tasche sul davanti e la clip sul retro sui pantaloni. Ho anche cucito una piccola manica di tessuto sulle parti delle bretelle che toccheranno la mia pelle. Due magliette possono diventare un po' troppo calde, quindi ho rinunciato e ho usato la piccola manica in tessuto.

Passaggio 7: programmazione

Programmazione
Programmazione

Ed ecco il codice. Ci sono alcune parti che sono ben commentate, ma la stragrande maggioranza non lo è. Se hai domande su parti diverse puoi darmi il numero di riga (con #include come riga numero uno) o darmi una copia delle righe e della funzione in cui risiede (come loop() o compMovePaddle()) e farò del mio meglio per spiegartelo, quindi aggiungere un commento al codice che lo spiega. #include #define PIN 6 //dice quali sono i pin di input per il gioco int buttonPin = 40; //detta il punteggio, mantenuto in un array binario perché è più facile int playerScore[5] = {0, 0, 0, 0, 0}; int compScore[5] = {0, 0, 0, 0, 0}; //indica la direzione della palla int bvd=0;//0 è giù, 1 è su int bhd=0;//0 è destra, 1 è sinistra //detta la posizione della palla int bvp = 8; int CV = 6; //verifica se la pallina è in modalità veloce boolean fast = false; //verifica se è un punteggio. cIsPoint booleano = false; pIsPoint booleano = false; //posizioni pagaia int cPaddle = 0; int pPaddle = 0; long precedenteMillis = 0; lungo precedenteMillisForComp = 0; //imposta i tempi di ritardo per la palla che si muove velocemente e lentamente "Int" in normInt e fastInt è per l'intervallo int normInt = 50; int fastInt = 10; //usato per controllare una vincita. 1 è la vittoria del giocatore, -1 nella vittoria del computer e 0 è che non è ancora successo nulla int win = 0; //per eliminare un bug. utilizzato nell'istruzione addOne e da nessun'altra parte. int che = 0; //La cosa visualizzata prima dell'inizio, -1 è un escape 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}; //se vinci 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}; //se perdi int youLose = {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}; //imposta la striscia led Adafruit_NeoPixel strip = Adafruit_NeoPixel(210, PIN, NEO_RGB + NEO_KHZ800); //setting, non attiva il pin 40 per l'input, inizia la strip, visualizza il //messaggio e lo mostra. void setup() { pinMode(buttonPin, INPUT); strip.begin(); for (int i = 0; pongPlay>0; i++){ strip.setPixelColor(pongPlay, strip. Color(0, 0, 255)); } strip.show(); ritardo (5000); while (digitalRead(buttonPin) == LOW){ //È una trappola!(finché il pulsante non viene premuto.) } } void loop() { clearScreen(); //disegna le palette per mostrare il punteggio for(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)); } } //disegna la pallina nella sua posizione di partenza strip.setPixelColor(98, strip. Color(255, 255, 255)); strip.show(); //decide se la pallina sale o scende while(pIsPoint == false && cIsPoint == false){ clearScreen(); unsigned long currentMillis = millis(); //assegna la posizione della paletta del giocatore pPaddle=checkPaddlePos(); //controlla la posizione successiva checkNext(); //spostando la pallina if (fast == false){ if(currentMillis - previousMillis > normInt){ previousMillis = currentMillis; moveBall(); } }else if(fast == true){ if(currentMillis - previousMillis > fastInt){ previousMillis = currentMillis; moveBall(); } } //disegna la pallina 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)); } //movimento paddle computer compMovePaddle(); //disegna le palette drawPaddles(); //in realtà metti tutto.strip.show(); //verifica se un punto è stato segnato if (pIsPoint == true){ which = 0; bhd=0; Aggiungi uno(); rottura; }else if(cIsPoint == true){ che = 1; bhd=1; Aggiungi uno(); rottura; } } if (win == 1){ clearScreen(); for (int i = 0; youWin>0; i++){ strip.setPixelColor(youWin, strip. Color(255, 0, 0)); strip.show(); } ritardo(5000); for (int i = 0; i < 5; i++){ playerScore = 0; CompScore = 0; } vittoria = 0; }else if (win == -1){ clearScreen(); for (int i = 0; youLose>0; i++){ strip.setPixelColor(youLose, strip. Color(0, 255, 0)); strip.show(); } ritardo(5000); for (int i = 0; i < 5; i++){ playerScore = 0; CompScore = 0; } vittoria = 0; } pIsPoint = falso; cIsPoint = falso; bvp = 8; CV = 6; bvd=random(0, 2);//0 è down, 1 è up fast=false; } //L'IA per il gioco void compMovePaddle(){ unsigned long currentMillis = millis(); if(currentMillis - precedenteMillisForComp > 51){ precedenteMillisForComp = 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++; } } } //muove la palla void moveBall(){ if (bhd == 0){ bhp--; }else if(bhd == 1){ bhp++; } if (bvd == 0){ bvp--; }else if(bvd == 1){ bvp++; } } // ne aggiunge uno all'array. Se whichOne è 0 si aggiunge al punteggio del giocatore. Se è 1 si aggiunge ai computer void addOne(){ if (che == 0){//if è il punteggio del giocatore //Aggiungi uno. Questo è il modo più semplice che conosco. for (int i=0; i < 5; i++){//loop if (playerScore == 0){//if quel valore è zero playerScore=1;//fai 1 break; //quindi vai via }else {//se è 1 playerScore=0;//fai zero e ripeti } } }else if(what == 1){ for (int i=0; i < 5;i++){ if (compScore == 0){ compScore=compScore+1; rottura; }else { compScore=0; } } } //Controlla se qualcuno ha vinto. 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; } } //controlla la posizione successiva delle palline void checkNext(){ //controlla se è stato segnato un punto if (bhp == 13){ pIsPoint = true; }else if(bhp == 0){ cIsPoint = true; } //se è stato segnato un punto salta il resto di questa roba if (pIsPoint == false || cIsPoint == false){ //controlla la palla verticalmente if (bvp+bvd==15){ bvd = 0; }else if(bvp+bvd==0){ bvd = 1; } //controlla la pallina orizzontalmente if (bhp+bhd==13){//prima lato computer if (bvp >= 10-cPaddle && bvp <= 10-cPaddle+4){ if(bhd==1) { bhd=0; }else if(bhd==0){ bhd=1; } veloce = falso; }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; } veloce = falso; } }else if(bhp+bhd==1){//then dal lato del giocatore if (bvp >= pPaddle && bvp <= pPaddle+4){//sta colpendo la pagaia in un punto normale? //rimbalza la palla! if(bhd==1){ bhd=0; }else if(bhd==0){ bhd=1; } }else if(bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle){//è colpire la pagaia all'angolo if(bvp != 0 && bvp !=14){//è non in alto o in basso? //Rimbalza la palla! if (bvd == 0){ bvd=1; }else if(bvd == 1){ bvd=0; } bhd=1; veloce = vero; }else if (bvp == 0 || bvp == 14){//è in alto o in basso? //rimbalza la palla! bhd=0; fast = true;//imposta il valore per far muovere velocemente la pallina in seguito } } } } } int checkPaddlePos(){ //legge il piatto e decide di conseguenza la posizione della racchetta if (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; } } void drawPaddles(){ //disegna le pale nel punto corretto e visualizza il punteggio sulla paletta for(int i = 0; i < 5; i++){ if (playerScore==1){ strip. 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(); }

Passaggio 8: prodotto finito

Prodotto finito
Prodotto finito
Prodotto finito
Prodotto finito

Ed ecco qua, la maglia finita!

Consigliato: