Pokrenite svog glavnog lika kao odgovor na unos igrača pomoću događaja tipkovnice i miša Arcade knjižnice.

Arcade je popularna Python biblioteka koju možete koristiti za stvaranje 2D arkadnih igara. To je biblioteka jednostavna za korištenje koja pruža jednostavan okvir za stvaranje igara s Pythonom.

Jedna od bitnih komponenti svake igre je kretanje igrača.

Stvaranje jednostavne igre u Arcade

Možete pronaći kompletan kod u ovom GitHub spremištu.

Prije početka provjerite imate li pip instaliran na vašem uređaju. Upotrijebite ovu naredbu za instaliranje biblioteke arkadnih igara:

pip instalacijska biblioteka

Nakon toga stvorite klasu Player kao podklasu klase arkada. Sprite razred, i a Moja Igra razred kao podrazred od arkada. Prozor. The Moja Igra klasa će imati metode za postavljanje objekata igre, njihovo prikazivanje na zaslonu, ažuriranje stanja igre i rukovanje korisničkim unosima. Kod za kreiranje zaslona igre i objekta igrača je sljedeći:

uvoz arkada

SCREEN_WIDTH = 800
VISINA_EKRANA = 600

instagram viewer

razredaIgrač(arkada. Sprite):
def__u tome__(sebe):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

razredaMoja Igra(arkada. Prozor):
def__u tome__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "moja igra")
sam.igrač = Nijedan
arcade.set_background_color (arcade.color. CRNO)

defpostaviti(sebe):
self.player = Player()

defizvlačenje(sebe):
arcade.start_render()
self.player.draw()

defAžuriraj(sam, delta_vrijeme):
proći

MyGame().run()

Dodavanje pokreta igrača pomoću unosa s tipkovnice

Sada kada ste stvorili zaslon igre i objekt igrača, možete pomicati igrača kao odgovor na unos s tipkovnice. Definirajte na_pritisak_tipke() i on_key_release() metode, koje ćete pozvati kada igrač pritisne ili otpusti tipku.

defna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO:
self.player.change_x = -5
elif ključ == arkada.ključ. PRAVO:
self.player.change_x = 5
elif ključ == arkada.ključ. GORE:
self.player.change_y = 5
elif ključ == arkada.ključ. DOLJE:
self.player.change_y = -5

defna_puštanje_ključa(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO ili ključ == arkada.ključ. PRAVO:
self.player.change_x = 0
elif ključ == arkada.ključ. GORE ili ključ == arkada.ključ. DOLJE:
self.player.change_y = 0

Kada dodajete kretanje igrača pomoću unosa s tipkovnice, možete prilagoditi brzinu kretanja promjenom vrijednosti dodijeljene self.player.change_x i self.player.change_y. Također možete dodati uvjete za ograničavanje kretanja igrača unutar zaslona igre.

Dodavanje pokreta igrača s unosom mišem

Osim unosa s tipkovnice, također možete dodati kretanje igrača pomoću unosa mišem. Definirajte on_mouse_motion() metoda, koja će se pokrenuti kada igrač pomakne miš. Unutar metode postavite centar_x i centar_y svojstva objekta igrača na trenutnu poziciju miša.

defna_pokret_miša(ja, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Kada dodajete kretanje igrača s unosom miša, možete prilagoditi ponašanje objekta igrača kada korisnik klikne ili drži miš definiranjem metoda kao što su on_mouse_press() ili on_mouse_drag(). Ove metode možete koristiti za pokretanje radnji igrača kao što su pucanje ili skakanje, ovisno o mehanici igre.

Predstavljamo dodatne značajke

Možete dodatno poboljšati kretanje igrača uzimajući u obzir ubrzanje i usporavanje. Izmijenite na_pritisak_tipke() način oduzimanja ili dodavanja promjena_x i promjena_y svojstva objekta igrača, ovisno o smjeru kretanja. Također postavite promjena_x i promjena_y svojstva do 0 u on_key_release() metoda, kao i prije.

defna_pritisak_tipke(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO:
self.player.change_x -= 5
elif ključ == arkada.ključ. PRAVO:
self.player.change_x += 5
elif ključ == arkada.ključ. GORE:
self.player.change_y += 5
elif ključ == arkada.ključ. DOLJE:
self.player.change_y -= 5

defna_puštanje_ključa(ja, ključ, modifikatori):
ako ključ == arkada.ključ. LIJEVO ili ključ == arkada.ključ. PRAVO:
self.player.change_x = 0
elif ključ == arkada.ključ. GORE ili ključ == arkada.ključ. DOLJE:
self.player.change_y = 0

Baš kao i PyGame, možete i vi dodajte otkrivanje sudara između objekata igrača i druge objekte igre, kao što su neprijatelji ili prepreke u arkadama. To možete postići dodavanjem sljedećeg koda u Ažuriraj() metoda Moja Igra razred:

defAžuriraj(sam, delta_vrijeme):
self.player.update()

# Provjerite kolizije između igrača i drugih objekata igre
sudari = arcade.check_for_collision_with_list (self.player, self.enemy_list)

za sudar u sudari:
collision.kill()

Napravite zanimljive igre s interaktivnim kretanjem igrača

Interaktivno kretanje igrača ključni je aspekt svake zanimljive igre. Korištenje različitih vrsta mehanike kretanja kao što su skakanje, trčanje, letenje i klizanje može igri dodati raznolikost i uzbuđenje.

Omogućavanje igračima kontrole nad njihovim kretanjem dodaje osjećaj djelovanja i uranjanja, što može dovesti do zadovoljnijeg iskustva igranja.