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ő:

instagram viewer
import árkád

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

osztá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 // 2

osztá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.