Få din hovedperson i bevægelse som svar på spillerens input med Arcade-bibliotekets tastatur- og musebegivenheder.

Arcade er et populært Python-bibliotek, du kan bruge til at skabe 2D-arcadespil. Det er et brugervenligt bibliotek, der giver en enkel ramme til at skabe spil med Python.

En af de væsentlige komponenter i ethvert spil er spillerbevægelse.

Oprettelse af et simpelt spil i Arcade

Du kan finde den komplette kode i denne GitHub-repo.

Før du starter, skal du sikre dig, at du har pip installeret på din enhed. Brug denne kommando til at installere arkadebiblioteket:

pip installationsbibliotek

Derefter skal du oprette en spillerklasse som en underklasse af arkade. Sprite klasse, og en Mit Spil klasse som en underklasse af arkade. Vindue. Det Mit Spil klasse vil have metoder til at opsætte spilobjekterne, gengive dem på skærmen, opdatere spiltilstanden og håndtere brugerinput. Koden til at oprette spilskærmen og spillerobjektet er som følger:

importere arkade

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

instagram viewer

klasseSpiller(arkade. Sprite):
def__i det__(selv):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

klasseMit Spil(arkade. Vindue):
def__i det__(selv):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mit spil")
self.player = Ingen
arcade.set_background_color (arcade.color. SORT)

defOpsætning(selv):
self.player = Player()

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

defopdatering(selv, delta_tid):
passere

MyGame().run()

Tilføjelse af spillerbevægelse med tastaturinput

Nu hvor du har oprettet spilskærmen og spillerobjektet, kan du flytte afspilleren som svar på tastaturinput. Definer on_key_press() og on_key_release() metoder, som du vil kalde, når afspilleren trykker på eller slipper en tast.

defon_key_press(selv, nøgle, modifikatorer):
hvis nøgle == arkade.nøgle. VENSTRE:
self.player.change_x = -5
elif nøgle == arkade.nøgle. HØJRE:
self.player.change_x = 5
elif nøgle == arkade.nøgle. OP:
self.player.change_y = 5
elif nøgle == arkade.nøgle. NED:
self.player.change_y = -5

defon_key_release(selv, nøgle, modifikatorer):
hvis nøgle == arkade.nøgle. VENSTRE eller nøgle == arkade.nøgle. HØJRE:
self.player.change_x = 0
elif nøgle == arkade.nøgle. OP eller nøgle == arkade.nøgle. NED:
self.player.change_y = 0

Når du tilføjer spillerbevægelse med tastaturinput, kan du tilpasse bevægelseshastigheden ved at ændre den værdi, der er tildelt til self.player.change_x og self.player.change_y. Du kan også tilføje betingelser for at begrænse spillerens bevægelser på spilskærmen.

Tilføjelse af spillerbevægelse med museindgang

Ud over tastaturindgange kan du også tilføje spillerbevægelse ved hjælp af museindgang. Definer on_mouse_motion() metode, som kører, når spilleren bevæger musen. Indstil i metoden center_x og center_y egenskaber af spillerobjektet til den aktuelle museposition.

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

Når du tilføjer spillerbevægelse med museindtastning, kan du tilpasse afspillerobjektets adfærd, når brugeren klikker eller holder musen nede ved at definere metoder som f.eks. on_mouse_press() eller on_mouse_drag(). Du kan bruge disse metoder til at udløse spillerhandlinger såsom at skyde eller hoppe, afhængigt af spilmekanikken.

Introduktion af yderligere funktioner

Du kan yderligere forbedre spillerens bevægelser ved at tage acceleration og deceleration i betragtning. Rediger on_key_press() metode til at trække fra eller lægge til ændre_x og ændre_y egenskaber af spillerobjektet, afhængigt af bevægelsesretningen. Indstil også ændre_x og ændre_y egenskaber til 0 i on_key_release() metode som før.

defon_key_press(selv, nøgle, modifikatorer):
hvis nøgle == arkade.nøgle. VENSTRE:
self.player.change_x -= 5
elif nøgle == arkade.nøgle. HØJRE:
self.player.change_x += 5
elif nøgle == arkade.nøgle. OP:
self.player.change_y += 5
elif nøgle == arkade.nøgle. NED:
self.player.change_y -= 5

defon_key_release(selv, nøgle, modifikatorer):
hvis nøgle == arkade.nøgle. VENSTRE eller nøgle == arkade.nøgle. HØJRE:
self.player.change_x = 0
elif nøgle == arkade.nøgle. OP eller nøgle == arkade.nøgle. NED:
self.player.change_y = 0

Ligesom PyGame kan du også tilføje kollisionsdetektion mellem afspillerobjektet og andre spilobjekter, såsom fjender eller forhindringer i arkade. Du kan opnå dette ved at tilføje følgende kode til update() metoden til Mit Spil klasse:

defopdatering(selv, delta_tid):
self.player.update()

# Tjek for kollisioner mellem spiller og andre spilobjekter
kollisioner = arcade.check_for_collision_with_list (self.player, self.enemy_list)

til kollision i kollisioner:
collision.kill()

Lav engagerende spil med interaktiv spillerbevægelse

Interaktiv spillerbevægelse er et afgørende aspekt af ethvert engagerende spil. Brugen af ​​forskellige typer bevægelsesmekanik såsom at hoppe, løbe, flyve og glide kan tilføje variation og spænding til spillet.

At give spillerne kontrol over deres bevægelser tilføjer en følelse af handlefrihed og fordybelse, hvilket kan føre til en mere tilfredsstillende spiloplevelse.