Faça seu personagem principal se mover em resposta à entrada do jogador com os eventos de teclado e mouse da biblioteca Arcade.

Arcade é uma biblioteca Python popular que você pode usar para criar jogos de arcade 2D. É uma biblioteca fácil de usar que fornece uma estrutura simples para criar jogos com Python.

Um dos componentes essenciais de qualquer jogo é o movimento do jogador.

Criando um jogo simples no Arcade

Você pode encontrar o completo código neste repositório do GitHub.

Antes de começar, certifique-se de ter pip instalado no seu dispositivo. Use este comando para instalar a biblioteca arcade:

biblioteca de instalação do pip

Depois disso, crie uma classe Player como uma subclasse da videogames. sprite aula e uma Meu jogo classe como uma subclasse de videogames. Janela. O Meu jogo A classe terá métodos para configurar os objetos do jogo, renderizá-los na tela, atualizar o estado do jogo e manipular as entradas do usuário. O código para criar a tela do jogo e o objeto jogador é o seguinte:

importar videogames

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

aulaJogador(videogames. Sprite):
def__iniciar__(auto):
super().__init__("jogador.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

aulaMeu jogo(videogames. Janela):
def__iniciar__(auto):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Meu jogo")
self.player = Nenhum
arcade.set_background_color (arcade.color. PRETO)

defconfigurar(auto):
self.jogador = Jogador()

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

defatualizar(auto, delta_time):
passar

MeuJogo().run()

Adicionando movimento do jogador com entrada de teclado

Agora que você criou a tela do jogo e o objeto do jogador, pode mover o jogador em resposta à entrada do teclado. Defina a on_key_press() e on_key_release() métodos, que você chamará quando o jogador pressionar ou soltar uma tecla.

defon_key_press(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA:
self.player.change_x = -5
elif chave == arcade.key. CERTO:
self.player.change_x = 5
elif chave == arcade.key. ACIMA:
self.player.change_y = 5
elif chave == arcade.key. ABAIXO:
self.player.change_y = -5

defon_key_release(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA ou chave == arcade.key. CERTO:
self.player.change_x = 0
elif chave == arcade.key. ACIMA ou chave == arcade.key. ABAIXO:
self.player.change_y = 0

Ao adicionar o movimento do jogador com entradas de teclado, você pode personalizar a velocidade do movimento alterando o valor atribuído a self.player.change_x e self.player.change_y. Você também pode adicionar condições para restringir o movimento do jogador na tela do jogo.

Adicionando o movimento do jogador com a entrada do mouse

Além das entradas do teclado, você também pode adicionar o movimento do jogador usando a entrada do mouse. Defina a on_mouse_motion() método, que será executado quando o jogador mover o mouse. Dentro do método, defina o centro_x e centro_y propriedades do objeto do jogador para a posição atual do mouse.

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

Ao adicionar o movimento do jogador com a entrada do mouse, você pode personalizar o comportamento do objeto do jogador quando o usuário clicar ou segurar o mouse definindo métodos como on_mouse_press() ou on_mouse_drag(). Você pode usar esses métodos para acionar ações do jogador, como atirar ou pular, dependendo da mecânica do jogo.

Apresentando Recursos Adicionais

Você pode aprimorar ainda mais o movimento do jogador levando em consideração a aceleração e a desaceleração. Modifique o on_key_press() método para subtrair ou adicionar ao mudar_x e change_y propriedades do objeto do jogador, dependendo da direção do movimento. Defina também o mudar_x e change_y propriedades para 0 no on_key_release() método, como antes.

defon_key_press(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA:
self.player.change_x -= 5
elif chave == arcade.key. CERTO:
self.player.change_x += 5
elif chave == arcade.key. ACIMA:
self.player.change_y += 5
elif chave == arcade.key. ABAIXO:
self.player.change_y -= 5

defon_key_release(auto, chave, modificadores):
se chave == arcade.key. ESQUERDA ou chave == arcade.key. CERTO:
self.player.change_x = 0
elif chave == arcade.key. ACIMA ou chave == arcade.key. ABAIXO:
self.player.change_y = 0

Assim como o PyGame, você também pode adicionar detecção de colisão entre o objeto do jogador e outros objetos do jogo, como inimigos ou obstáculos no fliperama. Você pode conseguir isso adicionando o seguinte código ao atualizar() método do Meu jogo aula:

defatualizar(auto, delta_time):
self.player.update()

# Verifique se há colisões entre o jogador e outros objetos do jogo
colisões = arcade.check_for_collision_with_list (self.player, self.enemy_list)

para colisão em colisões:
colisão.kill()

Faça jogos envolventes com movimento interativo do jogador

O movimento interativo do jogador é um aspecto crucial de qualquer jogo envolvente. O uso de diferentes tipos de mecânica de movimento, como pular, correr, voar e deslizar, pode adicionar variedade e emoção ao jogo.

Dar aos jogadores controle sobre seus movimentos adiciona uma sensação de agência e imersão, o que pode levar a uma experiência de jogo mais satisfatória.