Răspunsul la intrare este vital pentru orice joc și este bine să sprijiniți tastatura pentru utilizatorii care o preferă. Aflați cum cu biblioteca arcade a lui Python.
Intrarea de la tastatură este o parte esențială a dezvoltării jocului și este crucial să o gestionați eficient pentru a oferi o experiență excelentă pentru utilizator. Biblioteca Arcade oferă o modalitate simplă și eficientă de a gestiona introducerea de la tastatură în jocurile dvs. Python.
Crearea unui joc simplu cu un jucător
Puteți găsi codul complet în acest depozit GitHub.
Înainte de a vă scufunda în gestionarea intrărilor de la tastatură, asigurați-vă că aveți pip instalat pe dispozitivul dvs. Utilizați această comandă pentru a instala biblioteca arcade:
pip install arcade
După aceea, creați scheletul unui joc simplu:
import arcadă
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480clasăJocul meu(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime, "Jocul meu")
arcade.set_background_color (arcade.color. ALB)defon_draw(de sine):
arcade.start_render()defActualizați(self, delta_time):
trece
Jocul meu (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
Aceasta creează o fereastră cu un fundal alb. Apoi, adăugați un jucător la jocul dvs.:
clasăJucător:
def__init__(sine, x, y):
sine.x = x
self.y = y
self.speed = 5
self.radius = 20defa desena(de sine):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. ALBASTRU)defmută la stânga(de sine):
self.x -= self.vitezadefmisca-te la dreapta(de sine):
self.x += self.vitezadefmuta_sus(de sine):
self.y += self.speed
defmuta_în jos(de sine):
self.y -= self.speed
Acest lucru creează un jucător simplu cu un cerc albastru. Puteți adăuga acest jucător la jocul dvs. modificând Jocul meu clasă:
import arcadă
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480clasăJocul meu(arcadă. Fereastră):
def__init__(sine, lățime, înălțime):
super().__init__(lățime, înălțime, "Jocul meu")
arcade.set_background_color (arcade.color. ALB)
self.player = Player (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)defon_draw(de sine):
arcade.start_render()
self.player.draw()defActualizați(self, delta_time):
trecedefprincipal():
Jocul meu (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
dacă __nume__ == "__principal__":
principal()
Acum aveți un jucător în joc pe care îl puteți desena pe ecran.
Răspunsul la apăsările și eliberările tastelor
Pentru a răspunde la intrarea utilizatorului în jocul dvs., trebuie să vă ocupați de apăsarea și eliberarea tastelor. Biblioteca Arcade oferă două metode pentru gestionarea acestor evenimente: on_key_press și on_key_release.
Pentru a utiliza aceste metode, trebuie să le definiți în dvs arcadă. Fereastră subclasă. Când jucătorul apasă sau eliberează o tastă, arcade va rula metoda corespunzătoare, trecându-i două argumente: cheie și modificatori. cheie este un număr întreg care reprezintă codul tastei apăsate sau eliberate. modificatori este un câmp de biți care reprezintă orice taste modificatoare pe care le-a apăsat și jucătorul, cum ar fi Shift sau Control.
Iată un exemplu despre cum să răspunzi la apăsarea unei taste în jocul tău:
clasăJocul meu(arcadă. Fereastră):
defon_key_press(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
# Mutați jucătorul la stânga
elif cheie == arcade.key. DREAPTA:
# Mutați jucătorul la dreapta
elif cheie == arcade.key. SUS:
# Mută playerul în sus
elif cheie == arcade.key. JOS:
# Mută playerul în jos
Pentru a răspunde la lansările cheilor, puteți defini on_key_release metoda in acelasi mod:
clasăJocul meu(arcadă. Fereastră):
defon_key_release(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
# Nu mai mutați jucătorul la stânga
elif cheie == arcade.key. DREAPTA:
# Nu mai mutați jucătorul la dreapta
elif cheie == arcade.key. SUS:
# Nu mai mutați jucătorul în sus
elif cheie == arcade.key. JOS:
# Nu mai mutați jucătorul în jos
Este important să rețineți că capturarea introducerea utilizatorului în pygame necesită verificare manuală a evenimentelor în bucla de joc. Pe de altă parte, biblioteca Arcade invocă automat metode relevante atunci când jucătorul apasă sau eliberează o tastă. Acest lucru înseamnă că nu trebuie să verificați manual evenimentele cheie din bucla de joc, scutindu-vă de bătaia de cap a unui cod suplimentar.
Personalizarea gestionării intrărilor de la tastatură pentru a se potrivi nevoilor jocului dvs
Biblioteca Arcade oferă multe modalități de a personaliza introducerea de la tastatură. Poate doriți să schimbați legăturile de taste pentru jocul dvs. sau să permiteți jucătorului să își personalizeze propriile legături de taste.
Puteți face acest lucru definind un dicționar key_map care mapează fiecare cheie la metoda corespunzătoare a obiectului jucător. Pentru a permite jucătorului să-și personalizeze legăturile de taste, puteți adăuga un meniu de setări care modifică key_map dicționar bazat pe preferințele jucătorului.
Iată un exemplu:
clasăJocul meu(arcadă. Fereastră):
def__init__(sine, lățime, înălțime, titlu):
super().__init__(lățime, înălțime, titlu)
self.player = Jucător(100, 100)self.key_map = {
arcade.cheie. STÂNGA: self.player.move_left,
arcade.cheie. DREAPTA: self.player.move_right,
arcade.cheie. SUS: self.player.move_up,
arcade.cheie. JOS: self.player.move_down
}defon_key_press(sine, cheie, modificatori):
dacă cheie în self.key_map:
self.key_map[key]()
defon_key_release(sine, cheie, modificatori):
dacă cheie în self.key_map:
self.key_map[key + 1]()
Răspundeți la intrările utilizatorului în timp real
Răspunsul la intrarea utilizatorului în timp real este un aspect esențial al creării unui joc captivant. Făcându-ți timp pentru a gestiona corect introducerea de la tastatură în jocul tău, poți crea o imagine mai captivantă și experiență captivantă pentru jucătorii dvs. și, în cele din urmă, faceți-vă jocul să iasă în evidență într-un spațiu aglomerat piata de desfacere.