Dostaňte svoju hlavnú postavu do pohybu v reakcii na vstup hráča pomocou klávesnice a myši v knižnici Arcade.

Arcade je populárna knižnica Pythonu, ktorú môžete použiť na vytváranie 2D arkádových hier. Je to ľahko použiteľná knižnica, ktorá poskytuje jednoduchý rámec na vytváranie hier s Pythonom.

Jednou zo základných súčastí každej hry je pohyb hráča.

Vytvorenie jednoduchej hry v Arcade

Môžete nájsť kompletné kód v tomto úložisku GitHub.

Pred začatím sa uistite, že máte pip nainštalovaný na vašom zariadení. Na inštaláciu arkádovej knižnice použite tento príkaz:

inštalačná knižnica pip

Potom vytvorte triedu Player ako podtriedu triedy pasáž. Sprite trieda, a MyGame triedy ako podtriedy pasáž. okno. The MyGame trieda bude mať metódy na nastavenie herných objektov, ich vykreslenie na obrazovke, aktualizáciu stavu hry a spracovanie používateľských vstupov. Kód na vytvorenie hernej obrazovky a objektu hráča je nasledujúci:

importovať pasáž

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

triedaHráč(arkáda. sprite):

instagram viewer

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

triedaMyGame(arkáda. okno):
def__init__(ja):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Moja hra")
self.player = žiadne
arcade.set_background_color (arcade.color. ČIERNA)

defnastaviť(ja):
self.player = Hráč ()

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

defaktualizovať(self, delta_time):
prejsť

MyGame().run()

Pridanie pohybu hráča pomocou vstupu z klávesnice

Teraz, keď ste vytvorili hernú obrazovku a objekt hráča, môžete hráčom pohybovať podľa zadania klávesnice. Definujte on_key_press() a on_key_release() metódy, ktoré zavoláte, keď hráč stlačí alebo uvoľní kláves.

defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
self.player.change_x = -5
elif kľúč == arcade.key. SPRÁVNY:
self.player.change_x = 5
elif kľúč == arcade.key. HORE:
self.player.change_y = 5
elif kľúč == arcade.key. DOLE:
self.player.change_y = -5

defon_key_release(ja, kľúč, modifikátory):
ak kľúč == arcade.key. LEFT alebo kľúč == arcade.key. SPRÁVNY:
self.player.change_x = 0
elif kľúč == arcade.key. HORE alebo kľúč == arcade.key. DOLE:
self.player.change_y = 0

Pri pridávaní pohybu hráča pomocou klávesových vstupov môžete prispôsobiť rýchlosť pohybu zmenou priradenej hodnoty self.player.change_x a self.player.change_y. Môžete tiež pridať podmienky na obmedzenie pohybu hráčov na hernej obrazovke.

Pridanie pohybu hráča pomocou vstupu myši

Okrem vstupov z klávesnice môžete pridať pohyb hráča aj pomocou vstupu myši. Definujte on_mouse_motion() metóda, ktorá sa spustí, keď hráč pohne myšou. Vo vnútri metódy nastavte center_x a center_y vlastnosti objektu prehrávača na aktuálnu pozíciu myši.

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

Pri pridávaní pohybu hráča pomocou vstupu myši môžete prispôsobiť správanie objektu hráča, keď používateľ klikne alebo podrží myš, definovaním metód, ako napr. on_mouse_press() alebo on_mouse_drag(). Tieto metódy môžete použiť na spustenie akcií hráča, ako je streľba alebo skákanie, v závislosti od herných mechanizmov.

Predstavujeme ďalšie funkcie

Pohyb hráča môžete ďalej zlepšiť zohľadnením zrýchlenia a spomalenia. Upravte on_key_press() metóda na odčítanie alebo pridanie k zmeniť_x a zmeniť_y vlastnosti predmetu hráča v závislosti od smeru pohybu. Nastavte tiež zmeniť_x a zmeniť_y vlastnosti na 0 v on_key_release() metóda, ako predtým.

defon_key_press(ja, kľúč, modifikátory):
ak kľúč == arcade.key. VĽAVO:
self.player.change_x -= 5
elif kľúč == arcade.key. SPRÁVNY:
self.player.change_x += 5
elif kľúč == arcade.key. HORE:
self.player.change_y += 5
elif kľúč == arcade.key. DOLE:
self.player.change_y -= 5

defon_key_release(ja, kľúč, modifikátory):
ak kľúč == arcade.key. LEFT alebo kľúč == arcade.key. SPRÁVNY:
self.player.change_x = 0
elif kľúč == arcade.key. HORE alebo kľúč == arcade.key. DOLE:
self.player.change_y = 0

Rovnako ako PyGame, môžete tiež pridať detekciu kolízie medzi objektom hráča a ďalšie herné objekty, ako sú nepriatelia alebo prekážky v arkádach. Môžete to dosiahnuť pridaním nasledujúceho kódu do aktualizovať() metóda MyGame trieda:

defaktualizovať(self, delta_time):
self.player.update()

# Skontrolujte kolízie medzi hráčom a inými hernými objektmi
kolízie = arcade.check_for_collision_with_list (self.player, self.enemy_list)

pre Zrážka v kolízie:
kolízia.kill()

Vytvárajte pútavé hry s interaktívnym pohybom hráča

Interaktívny pohyb hráča je kľúčovým aspektom každej pútavej hry. Použitie rôznych typov pohybových mechaník, ako je skákanie, beh, lietanie a kĺzanie, môže pridať do hry rozmanitosť a vzrušenie.

Ak hráčom poskytnete kontrolu nad ich pohybom, získate pocit agentúry a ponorenia, čo môže viesť k uspokojivejšiemu hernému zážitku.