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 = 600razredaIgrač(arkada. Sprite):
def__u tome__(sebe):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2razredaMoja 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.