Sommario:

(Multigiocatore) Combattere su GameGo con Makecode Arcade: 6 passaggi
(Multigiocatore) Combattere su GameGo con Makecode Arcade: 6 passaggi

Video: (Multigiocatore) Combattere su GameGo con Makecode Arcade: 6 passaggi

Video: (Multigiocatore) Combattere su GameGo con Makecode Arcade: 6 passaggi
Video: MakeCode Arcade Advanced - Giraffes and Hats 2024, Dicembre
Anonim

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

Sulle funzioni Start e Round_setup
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

Flusso di gioco
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

Gioco 1: avversario AI
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

Gioco 2: Simulatore Multigiocatore
Gioco 2: Simulatore Multigiocatore
Gioco 2: Simulatore Multigiocatore
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

Gioco 3: Multigiocatore Jacdac
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

Che il combattimento di Cthulhu abbia inizio!
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: