Mișcă personajul principal ca răspuns la intrarea jucătorului cu evenimentele de la tastatură și mouse ale bibliotecii Arcade.

Arcade este o bibliotecă populară Python pe care o puteți folosi pentru a crea jocuri arcade 2D. Este o bibliotecă ușor de utilizat, care oferă un cadru simplu pentru crearea de jocuri cu Python.

Una dintre componentele esențiale ale oricărui joc este mișcarea jucătorului.

Crearea unui joc simplu în Arcade

Puteți găsi complet cod în acest depozit GitHub.

Înainte de a începe, asigurați-vă că aveți pip instalat pe dispozitivul dvs. Utilizați această comandă pentru a instala biblioteca arcade:

pip install library

După aceea, creați o clasă Player ca subclasă a arcadă. Sprite clasa, și a Jocul meu clasa ca subclasa a arcadă. Fereastră. The Jocul meu clasa va avea metode pentru a configura obiectele jocului, a le reda pe ecran, a actualiza starea jocului și a gestiona intrările utilizatorului. Codul pentru crearea ecranului de joc și a obiectului jucător este următorul:

import
instagram viewer
arcadă

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

clasăJucător(arcadă. Sprite):
def__init__(de sine):
super().__init__(„player.png”, 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

clasăJocul meu(arcadă. Fereastră):
def__init__(de sine):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Jocul meu")
self.player = Nici unul
arcade.set_background_color (arcade.color. NEGRU)

defînființat(de sine):
self.player = Player()

defon_draw(de sine):
arcade.start_render()
self.player.draw()

defActualizați(self, delta_time):
trece

MyGame().run()

Adăugarea mișcării jucătorului cu introducerea de la tastatură

Acum că ați creat ecranul de joc și obiectul jucător, puteți muta jucătorul ca răspuns la introducerea de la tastatură. Definiți on_key_press() și on_key_release() metode, pe care le veți apela atunci când jucătorul apasă sau eliberează o tastă.

defon_key_press(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
self.player.change_x = -5
elif cheie == arcade.key. DREAPTA:
self.player.change_x = 5
elif cheie == arcade.key. SUS:
self.player.change_y = 5
elif cheie == arcade.key. JOS:
self.player.change_y = -5

defon_key_release(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA sau cheie == arcade.key. DREAPTA:
self.player.change_x = 0
elif cheie == arcade.key. SUS sau cheie == arcade.key. JOS:
self.player.change_y = 0

Când adăugați mișcarea jucătorului cu intrări de la tastatură, puteți personaliza viteza de mișcare modificând valoarea atribuită self.player.change_x și self.player.change_y. De asemenea, puteți adăuga condiții pentru a restricționa mișcarea jucătorului în ecranul jocului.

Adăugarea mișcării jucătorului cu introducerea mouse-ului

Pe lângă intrările de la tastatură, puteți adăuga și mișcarea jucătorului folosind introducerea mouse-ului. Definiți on_mouse_motion() metoda, care va rula atunci când jucătorul mișcă mouse-ul. În interiorul metodei, setați centru_x și center_y proprietățile obiectului player la poziția curentă a mouse-ului.

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

Când adăugați mișcarea jucătorului cu introducerea mouse-ului, puteți personaliza comportamentul obiectului jucător atunci când utilizatorul face clic sau ține apăsat mouse-ul prin definirea unor metode precum on_mouse_press() sau on_mouse_drag(). Puteți folosi aceste metode pentru a declanșa acțiuni ale jucătorului, cum ar fi împușcarea sau săritura, în funcție de mecanica jocului.

Prezentarea caracteristicilor suplimentare

Puteți îmbunătăți și mai mult mișcarea jucătorului luând în considerare accelerația și decelerația. Modificați on_key_press() metoda de a scădea sau de a adăuga la schimbare_x și schimbare_y proprietățile obiectului jucător, în funcție de direcția de mișcare. De asemenea, setați schimbare_x și schimbare_y proprietăți la 0 în on_key_release() metoda, ca înainte.

defon_key_press(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA:
self.player.change_x -= 5
elif cheie == arcade.key. DREAPTA:
self.player.change_x += 5
elif cheie == arcade.key. SUS:
self.player.change_y += 5
elif cheie == arcade.key. JOS:
self.player.change_y -= 5

defon_key_release(sine, cheie, modificatori):
dacă cheie == arcade.key. STÂNGA sau cheie == arcade.key. DREAPTA:
self.player.change_x = 0
elif cheie == arcade.key. SUS sau cheie == arcade.key. JOS:
self.player.change_y = 0

La fel ca PyGame, poți și tu adăugați detectarea coliziunilor între obiectul jucătorului și alte obiecte de joc, cum ar fi inamicii sau obstacolele din arcade. Puteți realiza acest lucru adăugând următorul cod la Actualizați() metoda de Jocul meu clasă:

defActualizați(self, delta_time):
self.player.update()

# Verificați dacă există coliziuni între jucător și alte obiecte de joc
coliziuni = arcade.check_for_collision_with_list (self.player, self.enemy_list)

pentru coliziune în ciocniri:
colision.kill()

Creați jocuri captivante cu mișcarea interactivă a jucătorului

Mișcarea interactivă a jucătorului este un aspect crucial al oricărui joc captivant. Utilizarea diferitelor tipuri de mecanisme de mișcare, cum ar fi sărituri, alergare, zbor și alunecare, poate adăuga varietate și emoție jocului.

Oferirea jucătorilor control asupra mișcării lor adaugă un sentiment de agenție și imersiune, ceea ce poate duce la o experiență de joc mai satisfăcătoare.