Sommario:
- Forniture
- Passaggio 1: sulle funzioni Start e Round_setup
- Passaggio 2: flusso di gioco
- Fase 3: Gioco 1: avversario AI
- Fase 4: Gioco 2: Simulatore Multigiocatore
- Passaggio 5: Gioco 3: Multigiocatore Jacdac
- Passaggio 6: che il combattimento di Cthulhu abbia inizio
Video: (Multigiocatore) Combattere su GameGo con Makecode Arcade: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
GameGo è una console portatile per giochi retrò compatibile con Microsoft Makecode sviluppata da TinkerGen STEM education. È basato sul chip ARM Cortex M4 STM32F401RET6 e realizzato per gli educatori STEM o solo per le persone a cui piace divertirsi a creare videogiochi retrò. Puoi seguire questo tutorial e provare il gioco nel simulatore Makecode Arcade e poi eseguirlo su GameGo.
Negli articoli che abbiamo pubblicato prima ci siamo già cimentati nella realizzazione di un gioco platform e di un remake di Battle City. Questa volta volevo usare l'interfaccia Jacdac per connettere due GameGo e consentire ai giocatori di combattere per la supremazia in un gioco di combattimento multiplayer. Sfortunatamente, ho scoperto che la programmazione a blocchi per il multiplayer di Jacdac è in fase beta a partire da ora e presenta alcuni bug: è ancora possibile creare giochi più semplici, ma senza fortuna per il mio gioco di combattimento. Quindi, in questo tutorial pubblico tre versioni del gioco (che ho chiamato "Cthulhu Combat":))
- versione per giocatore singolo con semplice avversario AI
- versione multiplayer per giocare in simulazione Arcade
- versione multiplayer con Jacdac (incompleta, verrà aggiornata in seguito)
Forniture
GameGo
Microsoft Makecode Arcade
Passaggio 1: sulle funzioni Start e Round_setup
Descriverò la codifica del gioco per giocatore singolo in dettaglio e poi nei prossimi passaggi discuteremo come trasformarlo in
a) simulatore multiplayer
b)Jacdac multigiocatore.
Iniziamo impostando la mappa delle tessere su un dungeon oscuro e creando sprite per il giocatore e il bot AI - entrambi apparterranno comunque al tipo di giocatore. Abbiamo impostato la loro accelerazione sull'asse y su 600, in modo che non volassero dopo il salto. Inizializziamo anche i proiettili dal bot e dal giocatore prima di chiamare la funzione round_setup. La funzione round_setup si occupa della preparazione del nuovo round per noi - il motivo per cui lo rendiamo una funzione è perché ci possono essere fino a 3 round in totale nel gioco e vogliamo evitare di ripetere lo stesso codice. In quella funzione prima controlliamo se uno dei giocatori ha 2 vittorie - se questa condizione viene valutata come True, allora il gioco è finito. Se entrambi i giocatori hanno meno di due vittorie, incrementiamo la variabile round_num di uno e posizioniamo i giocatori nei punti di partenza, riempiamo le loro vite a 100 e dichiariamo l'inizio di un nuovo round.
Passaggio 2: flusso di gioco
In questo gioco il mondo stesso è statico e il flusso di gioco è legato alle azioni dei giocatori. In quattro blocchi definiamo la maggior parte delle regole del gioco, questi blocchi sono: su pulsante su premuto, su pulsante giù premuto, su pulsante A premuto e su pulsante B premuto. Diamo un'occhiata a ciascuno di questi blocchi.
su pulsante su premuto - logica doppio salto. Se abbiamo premuto il pulsante di salto meno di 3 volte, impostiamo la velocità di vy del giocatore a -140 (spostandosi verso l'alto). Il nostro giocatore ha l'accelerazione vy impostata su 600, quindi una volta che saltiamo, la nostra velocità diminuirà rapidamente. Una volta raggiunto lo 0 (non in movimento sull'asse verticale) impostiamo jump_count di nuovo a 0.
sul pulsante giù premuto - logica dello scudo di attacco a distanza. Se viene premuto il pulsante Giù, il giocatore cambia la sua immagine in "shielded" e imposta la variabile shielded su 1.
sul pulsante A premuto - spara un proiettile. Quello è praticamente auto-esplicativo.
sul pulsante B premuto - attacco in mischia, simile allo scudo nell'implementazione.
Impostiamo le immagini degli sprite dei giocatori e delle loro variabili schermate/attaccanti a 0 ogni 500 ms durante l'aggiornamento del gioco ogni.. ms blocco. Avremmo potuto impostare timer indipendenti per ogni azione, ma per semplicità useremo solo il ciclo di aggiornamento del gioco principale.
Le condizioni di vincita qui sono piuttosto semplici: quando la vita del giocatore raggiunge lo 0, l'altro giocatore ha vinto il round, quindi memorizziamo il numero di vincite per giocatore in una variabile.
Infine, ci sono due blocchi che controllano il danno da attacco a distanza e il danno da attacco in mischia. In ognuno di essi controlliamo la collisione di sprite e se la variabile shielded/attacking per il giocatore attaccante è impostata su 0/1.
Fase 3: Gioco 1: avversario AI
Nella prima partita creeremo un avversario AI relativamente semplice per essere il secondo giocatore. All'interno dell'aggiornamento del gioco ogni 200 ms, eseguiamo prima il controllo della distanza tra il giocatore e l'IA: se è inferiore a 20, impostiamo la nostra IA in modalità corpo a corpo aumentando la possibilità di attacco in mischia a 30 e la possibilità di attacco a distanza a 30. Se la distanza è maggiore di 20 impostiamo la probabilità di attacco in mischia a zero (nessuna pinta nell'attacco in mischia, poiché il giocatore è troppo lontano) e spostiamo la probabilità a 70. Dopo aver impostato le variabili per le probabilità di azione, continuiamo a eseguire queste azioni con le possibilità specificate. Se provi a giocare tu stesso contro questa semplice IA, vedrai che nonostante il suo comportamento sia molto semplice, vincere contro di essa non è facile - come spesso nel caso con avversari controllati dal computer vince soprattutto perché può fare più azioni al secondo di un giocatore umano.
Se sei bloccato durante la codifica, puoi scaricare il codice completo nel nostro repository GitHub per questo progetto e aprirlo in Makecode Arcade.
Fase 4: Gioco 2: Simulatore Multigiocatore
La variante di gioco per due giocatori in simulazione è molto simile alla versione per giocatore singolo, tranne per il fatto che sostituiamo il blocco del comportamento dell'IA con quattro blocchi premuti sul pulsante del giocatore 2 - con il contenuto all'interno di questi blocchi che rispecchia il contenuto degli stessi blocchi per il giocatore 1. Avere uno sguardo allo screenshot per avere un'idea migliore di quali modifiche è necessario apportare. Oltre a ciò, dobbiamo anche aggiungere sposta il giocatore 2 con il blocco dei pulsanti nella funzione di avvio e modificare la schermata finale per il gioco del giocatore due in VINCI invece di PERDERE.
Passaggio 5: Gioco 3: Multigiocatore Jacdac
Ho trovato un'implementazione comunitaria del multiplayer di Jacdac con blocchi arcade Makecode in questo thread del forum
forum.makecode.com/t/new-extension-real-mu…
Ho testato il gioco di esempio lì (Space Invaders) e ho scoperto che funzionava molto bene. Sfortunatamente, le meccaniche di gioco di Cthulhu Combat utilizzano molte variabili e sembra che le estensioni Real Multiplayer non supportino ancora la sincronizzazione delle variabili - quindi l'ho fatto funzionare, le azioni dei due giocatori sono sincronizzate tra i dispositivi, ma la vita potrebbe non non cadere sul dispositivo dell'avversario. Inoltre c'è qualcosa di sbagliato nella meccanica dei proiettili, i proiettili non sembrano scomparire dopo aver colpito il muro, il che fa perdere la connessione al gioco dopo che sono stati sparati circa 10 proiettili.
Puoi provare il multiplayer scaricando il file-p.webp
Passaggio 6: che il combattimento di Cthulhu abbia inizio
Ci sono ancora molti miglioramenti che possono essere apportati al nostro semplice gioco di combattimento: ad esempio, puoi aggiungere un comportamento AI più complicato o utilizzare l'estensione per aggiungere combo di pulsanti e/o sequenze di animazione. Buona fortuna e divertiti mentre programmi i tuoi giochi con GameGo e Makecode Arcade.
Se realizzi una versione migliorata del gioco, condividila nei commenti qui sotto! Per ulteriori informazioni su GameGo e altro hardware per produttori ed educatori STEM, visita il nostro sito Web, https://tinkergen.com/ e iscriviti alla nostra newsletter.
Consigliato:
Platform con livelli infiniti su GameGo con Makecode Arcade: 5 passaggi (con immagini)
Platformer con livelli infiniti su GameGo con Makecode Arcade: GameGo è una console portatile per giochi retrò compatibile con Microsoft Makecode sviluppata da TinkerGen STEM education. È basato sul chip ARM Cortex M4 STM32F401RET6 e realizzato per gli educatori STEM o solo per le persone a cui piace divertirsi a creare videogiochi retrò
Battle City Remake su GameGo con Makecode Arcade: 4 passaggi (con immagini)
Battle City Remake su GameGo con Makecode Arcade: GameGo è una console portatile per giochi retrò compatibile con Microsoft Makecode sviluppata da TinkerGen STEM education. È basato sul chip ARM Cortex M4 STM32F401RET6 e realizzato per gli educatori STEM o semplicemente per le persone a cui piace divertirsi a creare video ga
Colpisci un pulsante Multigiocatore: 4 passaggi
Colpisci un pulsante Multigiocatore: Un gioco come un Colpisci la talpa.Utilizzando LED e pulsanti.Ci sono 2 modalità:-Giocatore singolo-MultigiocatoreIn modalità giocatore singolo, ci sono 3 livelli:LEVEL_1: 1 diodo per 1 secondoLEVEL_2: 2 diodi per 1 secondoLEVEL_3: 2 diodi per 0,7 secondiE per il multip
Arduino: frustrante auto d'arte multigiocatore: 13 passaggi
Arduino: Frustrating Multiplayer Art Car: questa è un'auto d'arte che mostra un'auto bluetooth con uno smartphone e un servo che fa meglio con le parole a metà del suo lavoro. Optioneel is om het chaotisch/ frustrerend te maken voor de gebruiker door er voor te zorgen dat de servo i
Come combattere lo spam utilizzando Spamassassin, Dnsbl e Procmail: 9 passaggi
Come combattere lo spam utilizzando Spamassassin, Dnsbl e Procmail: Gestisco il mio server di posta e controllo la posta per la maggior parte del tempo utilizzando pine. Nel corso degli anni avevo installato filtri antispam in pine per eliminare lo spam. Ma sono anche noto per usare il mio blackberry per controllare la posta elettronica usando squirrelmail. Ebbene i miei filtri di pino di