Nota
Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Concorsi Festivi: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
GIOCO - Snake
Questo esempio implementa il classico gioco Snake su una matrice LED 8x12 utilizzando la scheda R4 Wifi. I giocatori controllano la direzione del serpente utilizzando un joystick a doppio asse.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Elite Explorer Kit |
300+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTI |
LINK ACQUISTO |
|---|---|
- |
|
Collegamenti
Schema Elettrico
Codice
Nota
Puoi aprire il file
13_snake.inonel percorsoelite-explorer-kit-main\fun_project\13_snakedirettamente.Oppure copia questo codice nell’Arduino IDE.
Come funziona?
Ecco una spiegazione dettagliata del codice:
Definizione e Inizializzazione delle Variabili
Importa la libreria
Arduino_LED_Matrixper le operazioni sulla matrice LED. matrix è un’istanza della matrice LED.frameeflatFramesono array utilizzati per memorizzare e processare le informazioni dei pixel sullo schermo. Il serpente è rappresentato come un array di strutturePoint, dove ogni punto ha una coordinata x e y. food rappresenta la posizione del cibo.directionè la direzione di movimento corrente del serpente.setup()Inizializza gli assi X e Y del joystick come input. Avvia la matrice LED. Inizializza la posizione iniziale del serpente al centro dello schermo. Genera casualmente la posizione iniziale del cibo.
loop()Determina la direzione del serpente in base alle letture del joystick. Muove il serpente. Controlla se la testa del serpente collide con il cibo. Se lo fa, il serpente cresce e viene generato nuovo cibo in una nuova posizione. Controlla se il serpente collide con sé stesso. Se lo fa, resetta il gioco. Disegna lo stato attuale del gioco (posizioni del serpente e del cibo) sulla matrice LED. Aggiunge un ritardo per controllare la velocità del gioco.
moveSnake()Muove ogni parte del serpente nella posizione della parte precedente, iniziando dalla coda e andando verso la testa. Muove la testa del serpente in base alla sua direzione.
generateFood()Genera tutte le possibili posizioni del cibo. Controlla se ogni posizione si sovrappone a una parte del serpente. Se non si sovrappone, la posizione è considerata una possibile posizione del cibo. Seleziona casualmente una posizione possibile del cibo.
drawFrame()Cancella il frame corrente. Disegna il serpente e il cibo sul frame. Appiattisce l’array frame bidimensionale in un array unidimensionale (flatFrame) e lo carica sulla matrice LED.