Um jogo não é nada sem entrada e, com o suporte do Pygame para mouse e entrada por toque, você pode garantir que seu jogo seja acessível.
Hoje em dia, os dispositivos touchscreen estão por toda parte. Não é surpresa que os desenvolvedores de jogos estejam usando cada vez mais a entrada por toque em seus jogos, e os frameworks estão tornando isso cada vez mais fácil.
O PyGame facilita a criação de jogos e aplicativos que podem aproveitar as entradas de toque.
Suporte de toque do PyGame
O PyGame possui suporte integrado para trabalhar com entradas de toque. Isso inclui suporte para entradas de toque do mouse e do dedo.
Para detectar um mouse, você pode usar o pygame. BOTÃO DO MOUSE PARA BAIXO e pygame. BOTÃO DO MOUSE PARA CIMA eventos. Por exemplo:
para evento em pygame.event.get():
se event.type == pygame. BOTÃO DO MOUSE PARA BAIXO:
imprimir("Botão do mouse pressionado")
Para detectar entradas de toque do dedo, você pode usar o pygame. DEDO PARA BAIXO e pygame. DEDO PARA CIMA eventos. Por exemplo:
para evento em pygame.event.get():
se event.type == pygame. DEDO PARA BAIXO:
imprimir("Dedo tocou na tela")
Criando um jogo simples
Você pode encontrar todo o código em este repositório do GitHub.
Comece criando um jogo simples. Este jogo consistirá em um personagem do jogador que você pode mover pela tela usando entradas de toque. Para fazer isso, você precisará criar um loop de jogo e um personagem do jogador.
Antes de começar, certifique-se de ter pip instalado no seu dispositivo, em seguida, use o seguinte comando para instalar o PyGameGenericName módulo:
pip instalar pygame
Agora, importe o módulo PyGame no código do seu jogo:
importar pygame
pygame.init()
Depois disso, crie a janela do jogo e um objeto de jogo:
# Configure a exibição
tamanho = (400, 400)
tela = pygame.display.set_mode (tamanho)# Cria um objeto jogador
jogador = pygame. Superfície((50, 50))
player.fill((255, 0, 0))
# Defina a posição inicial do jogador
jogador_pos = [175, 175]
Finalmente, crie o loop do jogo:
# O loop do jogo
correndo = Verdadeiroenquanto correndo:
# Verifique se há eventos
para evento em pygame.event.get():
se event.type == pygame. DESISTIR:
correndo = Falso# Atualize a posição do jogador
player_pos[0] += 5
player_pos[1] += 5# Desenhe o jogador
screen.blit (jogador, jogador_pos)
# Atualize a exibição
pygame.display.update()
Observe que o código acima cria apenas um jogo simples em que o personagem do jogador se move pela tela. Para tornar o jogo mais interessante, você pode adicionar física e colisões para criar obstáculos para o jogador superar.
Entradas de toque do mouse para movimento do jogador
Agora que você tem um jogo com um personagem do jogador, pode começar a adicionar entradas de toque. Para fazer isso, você precisará adicionar um manipulador de eventos para as entradas do mouse. Adicione o pygame. BOTÃO DO MOUSE PARA BAIXO e pygame. BOTÃO DO MOUSE PARA CIMA eventos para o loop do jogo.
Crie um manipulador de eventos para as entradas do mouse. Quando um jogador pressiona o botão do mouse, atualize a posição do personagem para a posição atual do mouse. O programa ignorará a liberação do botão do mouse, pois não precisa realizar nenhuma ação nesse caso.
# O loop do jogo
correndo = Verdadeiroenquanto correndo:
# Verifique se há eventos
para evento em pygame.event.get():
se event.type == pygame. DESISTIR:
correndo = Falso
# Verifique as entradas do mouse
elif event.type == pygame. BOTÃO DO MOUSE PARA BAIXO:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame. BOTÃO DO MOUSE:
passar
tela.fill((0, 0, 0))# Desenhe o jogador
screen.blit (jogador, jogador_pos)
# Atualize a exibição
pygame.display.update()
Você também pode adicionar lógica extra ao manipulador de eventos para fazer o jogador se mover em resposta à entrada do mouse.
Entradas de toque do dedo para o movimento do jogador
Além das entradas do mouse, você também pode adicionar entradas de toque do dedo. Para fazer isso, você precisará adicionar um manipulador de eventos para as entradas de toque do dedo.
Adicione o pygame. DEDO PARA BAIXO e pygame. DEDO PARA CIMA eventos para o loop do jogo:
# O loop do jogo
correndo = Verdadeiroenquanto correndo:
# Verifique se há eventos
para evento em pygame.event.get():
se event.type == pygame. DESISTIR:
correndo = Falso
# Verifique as entradas do mouse
elif event.type == pygame. BOTÃO DO MOUSE PARA BAIXO:
mouse_x, mouse_y = event.pos
player_pos[0] = mouse_x
player_pos[1] = mouse_y
elif event.type == pygame. BOTÃO DO MOUSE:
passar
# Verifique as entradas dos dedos
elif event.type == pygame. DEDO PARA BAIXO:
dedo_x, dedo_y = evento.pos
player_pos[0] = dedo_x
player_pos[1] = dedo_y
elif event.type == pygame. DEDO PARA CIMA:
passartela.fill((0, 0, 0))
# Desenhe o jogador
screen.blit (jogador, jogador_pos)
# Atualize a exibição
pygame.display.update()
Observe como isso é semelhante ao manipulador de eventos de entrada do mouse. Este manipulador de eventos atualiza a posição do personagem quando o jogador pressiona o dedo na tela. Quando eles soltam o dedo, nada acontece. Isso permite que você crie um jogo que pode ser controlado usando o mouse e as entradas de toque do dedo. Lembre-se de que você também pode usar outros eventos, como pygame. MOVIMENTO DOS DEDOS para responder ao movimento do dedo.
Recursos de toque adicionais do Pygame
Com os recursos de toque básicos instalados, você pode começar a adicionar recursos mais avançados. O PyGame possui alguns recursos integrados que podem ajudá-lo a adicionar mais recursos de toque ao seu jogo.
A primeira característica é a pygame.mouse.set_visible() função. Esta função permite ocultar o cursor do mouse. Isso pode ser útil se você quiser criar um jogo que use apenas entradas de toque e não o mouse.
Aqui está um exemplo de como usar o set_visible() função:
pygame.mouse.set_visible(Falso)
O pygame.mouse.set_pos() A função define o cursor do mouse para uma posição específica na tela. Isso é útil se você quiser mover o mouse para um local específico sem usar as entradas do mouse.
Abaixo está um exemplo de como usar o set_pos() função:
pygame.mouse.set_pos(200, 200)
Você pode usar o pygame.mouse.get_rel() função para obter o movimento relativo do mouse. Você pode usar isso para detectar o quanto o mouse se moveu desde o último evento do mouse.
É assim que você pode usar o get_rel() função:
dx, dy = pygame.mouse.get_rel()
Finalmente, você pode usar o pygame.mouse.get_pressed() para verificar se o jogador pressiona algum botão do mouse. Isso pode ser útil ao criar jogos com controles de mouse/toque.
Abaixo está um exemplo de como usar o get_pressed() função:
mouse_buttons = pygame.mouse.get_pressed()
PyGame também fornece um RODA DO MOUSE tipo de evento que você pode usar para detectar rolagem da roda do mouse. Ele suporta rolagens verticais e horizontais.
Aqui está um exemplo:
para evento em pygame.event.get():
se event.type == pygame. RODA DO MOUSE:
se evento.s > 0:
imprimir("Roda do mouse rolada para cima")
elif evento.s < 0:
imprimir("Roda do mouse rolada para baixo")
Crie jogos interativos com entradas de toque
Com as entradas de toque instaladas, agora você pode criar jogos interativos. Por exemplo, você pode criar um jogo em que o jogador pode se mover pela tela usando entradas de toque. Você também pode criar jogos baseados em gestos, onde o jogador pode realizar diferentes gestos para desencadear ações no jogo.
As possibilidades são infinitas quando se trata de criar jogos com entradas de toque. Com a ajuda do PyGame, você pode criar jogos divertidos e interativos. Então vá lá e comece a criar!