Fai muovere il tuo personaggio principale in risposta all'input del giocatore con gli eventi della tastiera e del mouse della libreria Arcade.

Arcade è una popolare libreria Python che puoi usare per creare giochi arcade 2D. È una libreria facile da usare che fornisce un semplice framework per creare giochi con Python.

Uno dei componenti essenziali di qualsiasi gioco è il movimento del giocatore.

Creazione di un gioco semplice in Arcade

Puoi trovare il completo codice in questo repository GitHub.

Prima di iniziare, assicurati di averlo pip installato sul tuo dispositivo. Usa questo comando per installare la libreria arcade:

libreria di installazione pip

Successivamente, crea una classe Player come sottoclasse di sala giochi. Folletto classe, e a Il mio gioco class come sottoclasse di sala giochi. Finestra. IL Il mio gioco class disporrà di metodi per configurare gli oggetti del gioco, visualizzarli sullo schermo, aggiornare lo stato del gioco e gestire gli input dell'utente. Il codice per creare la schermata di gioco e l'oggetto giocatore è il seguente:

instagram viewer
importare sala giochi

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

classeGiocatore(sala giochi. Folletto):
def__dentro__(se stesso):
super().__init__("giocatore.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

classeIl mio gioco(sala giochi. Finestra):
def__dentro__(se stesso):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Il mio gioco")
self.giocatore = Nessuno
arcade.set_background_color (arcade.color. NERO)

defimpostare(se stesso):
self.giocatore = Giocatore()

defon_draw(se stesso):
arcade.start_render()
self.player.draw()

defaggiornamento(self, delta_time):
passaggio

MyGame().run()

Aggiunta del movimento del giocatore con l'input da tastiera

Ora che hai creato la schermata di gioco e l'oggetto giocatore, puoi muovere il giocatore in risposta all'input da tastiera. Definisci il on_key_press() E on_key_release() metodi, che chiamerai quando il giocatore preme o rilascia un tasto.

defon_key_press(self, chiave, modificatori):
Se chiave == arcade.chiave. SINISTRA:
self.player.change_x = -5
elif chiave == arcade.chiave. GIUSTO:
self.player.change_x = 5
elif chiave == arcade.chiave. SU:
self.player.change_y = 5
elif chiave == arcade.chiave. GIÙ:
self.player.change_y = -5

defon_key_release(self, chiave, modificatori):
Se chiave == arcade.chiave. SINISTRA O chiave == arcade.chiave. GIUSTO:
self.player.change_x = 0
elif chiave == arcade.chiave. SU O chiave == arcade.chiave. GIÙ:
self.player.change_y = 0

Quando aggiungi il movimento del giocatore con input da tastiera, puoi personalizzare la velocità di movimento modificando il valore assegnato a self.player.change_x E self.player.change_y. Puoi anche aggiungere condizioni per limitare il movimento del giocatore all'interno della schermata di gioco.

Aggiunta del movimento del giocatore con l'input del mouse

Oltre agli input da tastiera, puoi anche aggiungere il movimento del giocatore utilizzando l'input del mouse. Definisci il su_mouse_movimento() metodo, che verrà eseguito quando il giocatore sposta il mouse. All'interno del metodo, impostare il file centro_x E centro_y proprietà dell'oggetto giocatore alla posizione corrente del mouse.

defon_mouse_motion(sé, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = si

Quando aggiungi il movimento del giocatore con l'input del mouse, puoi personalizzare il comportamento dell'oggetto giocatore quando l'utente fa clic o tiene premuto il mouse definendo metodi come on_mouse_press() O trascina_mouse(). Puoi utilizzare questi metodi per attivare azioni del giocatore come sparare o saltare, a seconda delle meccaniche di gioco.

Presentazione di funzionalità aggiuntive

Puoi migliorare ulteriormente il movimento del giocatore tenendo conto dell'accelerazione e della decelerazione. Modifica il on_key_press() metodo per sottrarre o aggiungere a cambia_x E change_y proprietà dell'oggetto giocatore, a seconda della direzione del movimento. Impostare anche il cambia_x E change_y proprietà a 0 nel on_key_release() metodo, come prima.

defon_key_press(self, chiave, modificatori):
Se chiave == arcade.chiave. SINISTRA:
self.player.change_x -= 5
elif chiave == arcade.chiave. GIUSTO:
self.player.change_x += 5
elif chiave == arcade.chiave. SU:
self.player.change_y += 5
elif chiave == arcade.chiave. GIÙ:
self.player.change_y -= 5

defon_key_release(self, chiave, modificatori):
Se chiave == arcade.chiave. SINISTRA O chiave == arcade.chiave. GIUSTO:
self.player.change_x = 0
elif chiave == arcade.chiave. SU O chiave == arcade.chiave. GIÙ:
self.player.change_y = 0

Proprio come PyGame, puoi anche aggiungere il rilevamento delle collisioni tra l'oggetto giocatore e altri oggetti di gioco, come nemici o ostacoli in sala giochi. È possibile ottenere ciò aggiungendo il seguente codice al file aggiornamento() metodo del Il mio gioco classe:

defaggiornamento(self, delta_time):
self.player.update()

# Controlla le collisioni tra il giocatore e altri oggetti di gioco
collisioni = arcade.check_for_collision_with_list (self.player, self.enemy_list)

per collisione In collisioni:
collisione.uccidi()

Crea giochi coinvolgenti con il movimento interattivo del giocatore

Il movimento interattivo del giocatore è un aspetto cruciale di qualsiasi gioco coinvolgente. L'uso di diversi tipi di meccaniche di movimento come saltare, correre, volare e scivolare può aggiungere varietà ed eccitazione al gioco.

Dare ai giocatori il controllo sui loro movimenti aggiunge un senso di agenzia e immersione, che può portare a un'esperienza di gioco più soddisfacente.