Nota

  • Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci l’utilizzo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci sui nuovi prodotti e alle anteprime.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a giveaway e promozioni speciali durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

2.21 GIOCO - Uccidi il Dragone

In questo progetto, utilizziamo un joystick per giocare a un gioco in cui bisogna sconfiggere un dragone.

Quando si preme il pulsante verde, il dragone si muoverà su e giù sul lato destro dello schermo e soffierà fuoco a intervalli. È necessario utilizzare il joystick per controllare il movimento della bacchetta magica e lanciare attacchi di stelle contro il dragone, evitando le fiamme che sputa, e infine sconfiggerlo.

../_images/19_dragon.png

Costruzione del circuito

Un joystick è un dispositivo di input composto da una leva che ruota su una base e segnala il suo angolo o direzione al dispositivo che controlla. I joystick sono spesso utilizzati per controllare videogiochi e robot.

Per comunicare una gamma completa di movimenti al computer, un joystick deve misurare la posizione della leva su due assi: l’asse X (da sinistra a destra) e l’asse Y (dal basso verso l’alto).

Le coordinate di movimento del joystick sono illustrate nella figura seguente.

Nota

  • La coordinata x va da sinistra a destra, con un intervallo compreso tra 0 e 1023.

  • La coordinata y va dall’alto verso il basso, con un intervallo compreso tra 0 e 1023.

../_images/16_joystick.png

Ora costruisci il circuito seguendo il diagramma sottostante.

../_images/joystick_circuit.png

Programmazione

1. Dragone

  • Aggiungi lo sfondo Woods tramite il pulsante Scegli uno sfondo.

../_images/19_dragon01.png
  • Elimina lo sprite predefinito e aggiungi lo sprite Dragon.

../_images/19_dragon0.png
  • Vai alla pagina Costumi e capovolgi orizzontalmente dragon-b e dragon-c.

../_images/19_dragon1.png
  • Imposta la dimensione su 50%.

../_images/19_dragon3.png
  • Crea una variabile dragon per registrare i punti vita del dragone, impostandone il valore iniziale a 50.

../_images/19_dragon2.png
  • Fai fluttuare lo sprite Dragon su e giù entro un intervallo.

../_images/19_dragon4.png
  • Aggiungi uno sprite Lightning come il fuoco sputato dallo sprite Dragon. È necessario ruotarlo di 90° in senso orario nella pagina Costumi, per far sì che lo sprite Lightning si muova nella direzione corretta.

Nota

Durante la regolazione del costume dello sprite Lightning, potrebbe essere spostato fuori dal centro; questo deve essere evitato! Il punto centrale deve essere esattamente al centro dello sprite.

../_images/19_lightning1.png
  • Regola il costume dragon-c dello sprite Dragon in modo che il suo punto centrale si trovi sulla coda del fuoco. Questo garantirà che le posizioni degli sprite Dragon e Lightning siano corrette, evitando che Lightning venga lanciato dai piedi del dragone.

../_images/19_dragon5.png
  • Allo stesso modo, il costume dragon-b deve far coincidere la testa del dragone con il punto centrale.

../_images/19_dragon5.png
  • Regola la dimensione e l’orientamento dello sprite Lightning per rendere l’immagine più armoniosa.

../_images/19_lightning3.png
  • Ora crea uno script per lo sprite Lightning. È semplice: basta farlo seguire sempre lo sprite Dragon. A questo punto, clicca sulla bandiera verde e vedrai il Dragon muoversi con il fulmine nella bocca.

../_images/19_lightning4.png
  • Torna allo sprite Dragon e fallo sputare fuoco, assicurandoti che il fuoco nella sua bocca non venga lanciato direttamente, ma che venga creato un clone per lo sprite Lightning.

../_images/19_dragon6.png
  • Fai in modo che il clone dello sprite Lightning venga lanciato ad un angolo casuale, rimbalzi sulle pareti e scompaia dopo un certo periodo di tempo.

../_images/19_lightning5.png
  • Nello sprite Lightning, nascondi il corpo principale e mostra il clone.

../_images/19_lightning6.png

Ora il dragone può muoversi su e giù e sputare fuoco.

2. Bacchetta Magica

  • Crea uno sprite Wand e ruotalo di 180° per puntare verso destra.

../_images/19_wand1.png
  • Crea una variabile hp per registrare il valore di vita, inizialmente impostata a 3. Leggi poi il valore del Joystick, che verrà utilizzato per controllare il movimento della bacchetta.

../_images/19_wand2.png
  • Il dragone ha il fulmine, e la bacchetta che lo sconfiggerà ha il suo «proiettile magico»! Crea uno sprite Star, ridimensionalo e crea uno script per farlo seguire sempre la Wand, limitando il numero di stelle a tre.

../_images/19_star2.png
  • Fai in modo che lo sprite Wand spari automaticamente le stelle. Lo sprite Wand spara le stelle nello stesso modo in cui il dragone sputa fuoco: creando cloni.

../_images/19_wand3.png
  • Torna allo sprite Star e crea uno script per il clone: deve ruotare, sparare verso destra, scomparire dopo aver superato il bordo dello stage e ripristinare il numero di stelle. Come per lo sprite Lightning, nascondi il corpo principale e mostra il clone.

../_images/19_star3.png

Ora abbiamo una bacchetta che spara stelle.

3. Combattimento!

La bacchetta e il dragone si scontreranno. Ecco le regole:

  1. Se la bacchetta tocca il dragone, sarà respinta e perderà punti vita.

  2. Se un fulmine colpisce la bacchetta, questa perderà punti vita.

  3. Se un proiettile di stella colpisce il dragone, questo perderà punti vita.

Ora aggiorniamo gli script di ogni sprite.

  • Se la Wand tocca il Dragon, sarà respinta e perderà punti vita.

../_images/19_wand4.png
  • Se un fulmine (clone dello sprite Lightning) colpisce la Wand, emetterà un suono e scomparirà, e la bacchetta perderà punti vita.

../_images/19_lightning7.png
  • Se un proiettile di stella (clone dello sprite Star) colpisce il Dragon, emetterà un suono di raccolta, scomparirà, ripristinando il numero di stelle, e il dragone perderà punti vita.

../_images/19_star4.png

4. Stage

La battaglia tra la Wand e il Dragon avrà un vincitore e un perdente, rappresentati dagli sfondi.

  • Aggiungi lo sfondo Blue Sky e scrivi la parola «WIN!» per rappresentare la vittoria sul dragone.

../_images/19_sky0.png
  • Modifica lo sfondo vuoto per rappresentare la sconfitta, con un tema scuro.

../_images/19_night.png
  • Scrivi uno script per cambiare gli sfondi: quando si clicca sulla bandiera verde, passa allo sfondo Woods; se i punti vita del dragone scendono sotto 1, il gioco è vinto e si passa allo sfondo Blue Sky; se i punti vita della bacchetta scendono sotto 1, il gioco è perso e si passa allo sfondo Night.

../_images/19_sky1.png