S pomočjo dogodkov tipkovnice in miške knjižnice Arcade premaknite svojega glavnega junaka v odziv na vnos igralca.

Arcade je priljubljena knjižnica Python, ki jo lahko uporabite za ustvarjanje 2D arkadnih iger. Je knjižnica, enostavna za uporabo, ki ponuja preprosto ogrodje za ustvarjanje iger s Pythonom.

Ena bistvenih sestavin vsake igre je gibanje igralca.

Ustvarjanje preproste igre v arkadi

Lahko najdete popolno kodo v tem repo GitHub.

Preden začnete, se prepričajte, da imate pip nameščen v vaši napravi. Za namestitev arkadne knjižnice uporabite ta ukaz:

namestitvena knjižnica pip

Po tem ustvarite razred Player kot podrazred razreda arkada. Sprite razred in a MyGame razred kot podrazred arkada. Okno. The MyGame bo imel metode za nastavitev objektov igre, njihovo upodabljanje na zaslonu, posodobitev stanja igre in obdelavo uporabniških vnosov. Koda za ustvarjanje igralnega zaslona in predmeta igralca je naslednja:

uvoz arkada

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

razredIgralec(arkadne. Sprite):

instagram viewer

def__v__(sebe):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

razredMyGame(arkadne. okno):
def__v__(sebe):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Moja igra")
self.player = Noben
arcade.set_background_color (arcade.color. ČRNA)

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

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

defnadgradnja(sam, delta_time):
prehod

MyGame().run()

Dodajanje gibanja igralca z vnosom s tipkovnice

Zdaj, ko ste ustvarili zaslon za igro in objekt igralca, lahko premaknete igralca kot odgovor na vnos s tipkovnice. Določite on_key_press() in on_key_release() metode, ki jih boste poklicali, ko igralec pritisne ali spusti tipko.

defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player.change_x = -5
elif ključ == arcade.key. PRAV:
self.player.change_x = 5
elif ključ == arcade.key. GOR:
self.player.change_y = 5
elif ključ == arcade.key. DOL:
self.player.change_y = -5

defon_key_release(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO oz ključ == arcade.key. PRAV:
self.player.change_x = 0
elif ključ == arcade.key. GOR oz ključ == arcade.key. DOL:
self.player.change_y = 0

Ko dodajate gibanje igralca z vnosi s tipkovnice, lahko prilagodite hitrost premikanja tako, da spremenite vrednost, dodeljeno self.player.change_x in self.player.change_y. Dodate lahko tudi pogoje za omejitev gibanja igralca na zaslonu igre.

Dodajanje gibanja igralca z vnosom miške

Poleg vnosov s tipkovnice lahko dodate tudi gibanje igralca z vnosom z miško. Določite on_mouse_motion() metoda, ki se zažene, ko igralec premakne miško. Znotraj metode nastavite center_x in center_y lastnosti predmeta igralca na trenutni položaj miške.

defon_mouse_motion(jaz, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Ko dodajate gibanje igralca z vnosom miške, lahko prilagodite vedenje predmeta igralca, ko uporabnik klikne ali drži miško, tako da definirate metode, kot je on_mouse_press() oz on_mouse_drag(). Te metode lahko uporabite za sprožitev dejanj igralca, kot sta streljanje ali skakanje, odvisno od mehanike igre.

Predstavljamo dodatne funkcije

Gibanje igralca lahko dodatno izboljšate tako, da upoštevate pospešek in pojemek. Spremenite on_key_press() način za odštevanje ali dodajanje spremeni_x in spremeni_y lastnosti predmeta igralca, odvisno od smeri gibanja. Nastavite tudi spremeni_x in spremeni_y lastnosti na 0 v on_key_release() metoda, kot prej.

defna_pritisk_tipke(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO:
self.player.change_x -= 5
elif ključ == arcade.key. PRAV:
self.player.change_x += 5
elif ključ == arcade.key. GOR:
self.player.change_y += 5
elif ključ == arcade.key. DOL:
self.player.change_y -= 5

defon_key_release(jaz, ključ, modifikatorji):
če ključ == arcade.key. LEVO oz ključ == arcade.key. PRAV:
self.player.change_x = 0
elif ključ == arcade.key. GOR oz ključ == arcade.key. DOL:
self.player.change_y = 0

Tako kot PyGame lahko tudi vi dodajte zaznavanje trka med objektom igralca in druge igralne predmete, kot so sovražniki ali ovire v arkadnih igrah. To lahko dosežete tako, da dodate naslednjo kodo v nadgradnja() metoda MyGame razred:

defnadgradnja(sam, delta_time):
self.player.update()

# Preverite trke med igralcem in drugimi predmeti igre
trki = arcade.check_for_collision_with_list (self.player, self.enemy_list)

za trk v trki:
collision.kill()

Ustvarite privlačne igre z interaktivnim gibanjem igralcev

Interaktivno gibanje igralcev je ključni vidik vsake privlačne igre. Uporaba različnih vrst gibalnih mehanik, kot so skakanje, tek, letenje in drsenje, lahko igri doda raznolikost in razburjenje.

Omogočanje igralcem nadzora nad njihovim gibanjem doda občutek delovanja in poglobljenosti, kar lahko vodi do bolj zadovoljujoče igralne izkušnje.