Mozgásba lendítheti főszereplőjét a játékos bevitelére az Arcade könyvtár billentyűzet- és egéreseményeivel.
Az Arcade egy népszerű Python-könyvtár, amellyel 2D-s játéktermi játékokat hozhat létre. Ez egy könnyen használható könyvtár, amely egyszerű keretet biztosít a Python segítségével történő játékok létrehozásához.
Minden játék egyik alapvető összetevője a játékos mozgása.
Egyszerű játék létrehozása az Arcade-ban
Megtalálható a teljes kód ebben a GitHub repóban.
Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik pip telepítve van a készülékére. Ezzel a paranccsal telepítheti az arcade könyvtárat:
pip telepítési könyvtár
Ezután hozzon létre egy Player osztályt az alosztályaként árkád. Kobold osztály, és a Az én játékom osztály alosztályaként árkád. Ablak. A Az én játékom osztálynak lesznek módszerei a játékobjektumok beállítására, a képernyőn való megjelenítésre, a játék állapotának frissítésére és a felhasználói bevitelek kezelésére. A játékképernyő és a játékos objektum létrehozásának kódja a következő:
import árkád
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600osztályJátékos(árkád. Kobold):
def__benne__(maga):
szuper().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2osztályAz én játékom(árkád. Ablak):
def__benne__(maga):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Az én játékom")
self.player = Egyik sem
arcade.set_background_color (arcade.color. FEKETE)defbeállít(maga):
self.player = Játékos()defon_draw(maga):
arcade.start_render()
self.player.draw()deffrissítés(self, delta_time):
pass
MyGame().run()
Játékos mozgás hozzáadása billentyűzet bemenettel
Most, hogy létrehozta a játék képernyőjét és a játékos objektumot, a lejátszót a billentyűzet bevitelére reagálva mozgathatja. Határozza meg a on_key_press() és on_key_release() módszereket, amelyeket akkor hív meg, amikor a játékos megnyom vagy elenged egy billentyűt.
defon_key_press(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL:
self.player.change_x = -5
elif kulcs == arcade.key. JOBB:
self.player.change_x = 5
elif kulcs == arcade.key. FEL:
self.player.change_y = 5
elif kulcs == arcade.key. LE:
self.player.change_y = -5
defon_key_release(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL vagy kulcs == arcade.key. JOBB:
self.player.change_x = 0
elif kulcs == arcade.key. FEL vagy kulcs == arcade.key. LE:
self.player.change_y = 0
Ha a játékos mozgását billentyűzetbemenettel ad hozzá, testreszabhatja a mozgás sebességét a hozzárendelt érték módosításával self.player.change_x és self.player.change_y. Feltételeket is hozzáadhat a játékos mozgásának korlátozásához a játék képernyőjén.
Játékos mozgás hozzáadása egérbemenettel
A billentyűzet bemenetek mellett az egér bemenetével is hozzáadhatja a játékos mozgását. Határozza meg a on_mouse_motion() módszer, amely akkor fut le, amikor a játékos mozgatja az egeret. A metóduson belül állítsa be a center_x és center_y a játékos objektum tulajdonságait az egér aktuális pozíciójához.
defon_mouse_motion(self, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y
Amikor a játékos mozgását egérbevitellel adja hozzá, testreszabhatja a lejátszó objektum viselkedését, amikor a felhasználó rákattint vagy lenyomva tartja az egeret olyan módszerek meghatározásával, mint pl. on_mouse_press() vagy on_mouse_drag(). Ezekkel a módszerekkel a játék mechanikájától függően olyan játékos műveleteket indíthat el, mint a lövöldözés vagy az ugrás.
További funkciók bemutatása
Tovább fokozhatja a játékos mozgását a gyorsítás és a lassítás figyelembevételével. Módosítsa a on_key_press() módszer kivonásához vagy hozzáadásához változás_x és változás_y a játékos objektum tulajdonságai a mozgás irányától függően. Állítsa be a változás_x és változás_y tulajdonságok 0-ra a on_key_release() módszerrel, mint korábban.
defon_key_press(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL:
self.player.change_x -= 5
elif kulcs == arcade.key. JOBB:
self.player.change_x += 5
elif kulcs == arcade.key. FEL:
self.player.change_y += 5
elif kulcs == arcade.key. LE:
self.player.change_y -= 5
defon_key_release(én, kulcs, módosítók):
ha kulcs == arcade.key. BAL vagy kulcs == arcade.key. JOBB:
self.player.change_x = 0
elif kulcs == arcade.key. FEL vagy kulcs == arcade.key. LE:
self.player.change_y = 0
Csakúgy, mint a PyGame, te is megteheted ütközésérzékelés hozzáadása a játékos objektumhoz és más játéktárgyak, például ellenségek vagy akadályok az árkádban. Ezt úgy érheti el, hogy hozzáadja a következő kódot a frissítés() módszere a Az én játékom osztály:
deffrissítés(self, delta_time):
self.player.update()# Ellenőrizze, nincs-e ütközés a játékos és más játéktárgyak között
ütközések = arcade.check_for_collision_with_list (self.player, self.enemy_list)
számára ütközés ban ben ütközések:
ütközés.kill()
Készíts lebilincselő játékokat az interaktív játékosmozgással
Az interaktív játékosmozgás minden megnyerő játék kulcsfontosságú eleme. Különböző típusú mozgásmechanikák, például ugrás, futás, repülés és csúsztatás használata változatossá és izgalmasabbá teheti a játékot.
Ha a játékosok irányíthatják mozgásukat, az ügynökség érzését és az elmerülést fokozza, ami még kielégítőbb játékélményhez vezethet.