Odziv na vnos je ključnega pomena za vsako igro in dobro je podpirati tipkovnico za uporabnike, ki jim je to ljubše. Ugotovite, kako s Pythonovo arkadno knjižnico.

Vnos s tipkovnico je bistven del razvoja igre in ključnega pomena je, da ga učinkovito obravnavamo, da zagotovimo odlično uporabniško izkušnjo. Knjižnica Arcade ponuja preprost in učinkovit način za upravljanje vnosa s tipkovnico v vaših igrah Python.

Ustvarjanje preproste igre s predvajalnikom

Celotno kodo najdete v ta repo GitHub.

Preden se poglobite v upravljanje vnosov s tipkovnice, se prepričajte, da imate pip nameščen v vaši napravi. Za namestitev arkadne knjižnice uporabite ta ukaz:

pip install arkada

Nato ustvarite okostje preproste igre:

uvoz arkada

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina, "Moja igra")
arcade.set_background_color (arcade.color. BELA)

defon_draw(sebe):
arcade.start_render()

defnadgradnja(sam, delta_time):
prehod

MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

instagram viewer

To ustvari okno z belim ozadjem. Nato dodajte igralca svoji igri:

razredIgralec:
def__v__(jaz, x, y):
sam.x = x
self.y = y
lastna hitrost = 5
self.radius = 20

defpripraviti(sebe):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. MODRA)

defpremakni levo(sebe):
self.x -= lastna hitrost

defpremakni desno(sebe):
self.x += lastna hitrost

defPomakni se navzgor(sebe):
self.y += self.speed

defpremik navzdol(sebe):
self.y -= lastna hitrost

To ustvari preprostega igralca z modrim krogom. Tega igralca lahko dodate svoji igri tako, da spremenite MyGame razred:

uvoz arkada

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina):
super().__init__(širina, višina, "Moja igra")
arcade.set_background_color (arcade.color. BELA)
self.player = igralec (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

defon_draw(sebe):
arcade.start_render()
self.player.draw()

defnadgradnja(sam, delta_time):
prehod

defglavni():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

če __ime__ == "__glavni__":
glavni ()

Zdaj imate v igri igralca, ki ga lahko narišete na zaslonu.

Odziv na pritiske in sprostitve tipk

Če se želite odzvati na uporabniški vnos v vaši igri, morate upravljati s pritiski in sprostitvijo tipk. Knjižnica Arcade ponuja dva načina za obravnavanje teh dogodkov: na_pritisk_tipke in on_key_release.

Če želite uporabiti te metode, jih morate definirati v svojem arkada. Okno podrazred. Ko igralec pritisne ali spusti tipko, bo arcade zagnal ustrezno metodo in ji posredoval dva argumenta: tipko in modifikatorje. ključ je celo število, ki predstavlja kodo tipke pritisnjene ali izpuščene tipke. modifikatorji je bitno polje, ki predstavlja vse modifikacijske tipke, ki jih je igralec tudi pritisnil, na primer Shift ali Control.

Tukaj je primer, kako se odzvati na pritisk tipke v igri:

razredMyGame(arkadne. okno):
defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
# Premakni igralca levo
elif ključ == arcade.key. PRAV:
# Premakni igralca desno
elif ključ == arcade.key. GOR:
# Premakni igralca navzgor
elif ključ == arcade.key. DOL:
# Premakni igralca navzdol

Če se želite odzvati na objave ključev, lahko definirate on_key_release metoda na enak način:

razredMyGame(arkadne. okno):
defon_key_release(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
# Ustavi premikanje igralca levo
elif ključ == arcade.key. PRAV:
# Nehaj premikati igralca desno
elif ključ == arcade.key. GOR:
# Nehaj premikati igralca navzgor
elif ključ == arcade.key. DOL:
# Nehaj premikati igralca navzdol

Pomembno je omeniti, da zajemanje uporabniški vnos v pygame zahteva ročno preverjanje dogodkov v vaši igralni zanki. Po drugi strani knjižnica Arcade samodejno prikliče ustrezne metode, ko igralec pritisne ali spusti tipko. To pomeni, da vam ni treba ročno preverjati ključnih dogodkov v vaši igralni zanki, kar vam prihrani težave z dodatno kodo.

Prilagajanje upravljanja vnosa s tipkovnice, da ustreza potrebam vaše igre

Knjižnica Arcade ponuja številne načine za prilagoditev vnosa s tipkovnico. Morda boste želeli spremeniti vezave tipk za svojo igro ali omogočiti igralcu, da prilagodi svoje lastne vezave tipk.

To lahko storite tako, da definirate slovar key_map ki preslika vsak ključ v ustrezno metodo objekta igralca. Če želite igralcu omogočiti, da prilagodi svoje vezave tipk, lahko dodate meni z nastavitvami, ki spremeni key_map slovar glede na igralčeve nastavitve.

Tukaj je primer:

razredMyGame(arkadne. okno):
def__v__(jaz, širina, višina, naslov):
super().__init__(širina, višina, naslov)
self.player = Igralec(100, 100)

self.key_map = {
arcade.key. LEVO: self.player.move_left,
arcade.key. DESNO: self.player.move_right,
arcade.key. GOR: self.player.move_up,
arcade.key. DOL: self.player.move_down
}

defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ v self.key_map:
self.key_map[ključ]()

defon_key_release(jaz, ključ, modifikatorji):
če ključ v self.key_map:
self.key_map[tipka + 1]()

Odziv na uporabniške vnose v realnem času

Odzivanje na uporabniški vnos v realnem času je bistven vidik ustvarjanja privlačne igre. Če si vzamete čas za pravilno obdelavo vnosa s tipkovnice v igri, lahko ustvarite bolj privlačno in poglobljeno izkušnjo za vaše igralce in na koncu poskrbite, da bo vaša igra izstopala v gneči tržnica.