Francileudo Oliveira
Francileudo Oliveira23/11/2022 08:18
Compartilhe

pygame: Melhorando a movimentação da nossa cobrinha

  • #Python

  Olá, seja muito bem vindo(a), anteriormente nós começamos a organização do nosso código para o jogo da cobrinha: https://programacao-descomplicada.blogspot.com/2022/11/pygame-aumentando-o-tamanho-da-cobra-e.html, porém o tamanho da nossa cobra só é visível quando estamos movimentando ela, por isso hoje nós iremos deixar a cobrinha em movimento constante, no qual quando clicarmos nas teclas de movimentação mudarmos apenas a direção para onde ela vai.

  Primeiro nós iremos comentar a nossa parte de movimento e adicionar o seguinte código no lugar:

if event.type == KEYDOWN:

  if event.key == K_a:

     

  if event.key == K_d:

     

  if event.key == K_w:

     

  if event.key == K_s:

  Agora, fora do nosso while, vamos colocar duas variáveis, uma chamada XControle, que recebe 20 como dados, e outra chamada YControle, que recebe 0. Com isso iremos organizar nossa condicional acima:

if event.type == KEYDOWN:

    if event.key == K_a:

      XControle = -20

      YControle = 0

    if event.key == K_d:

      XControle = 20

      YControle = 0

    if event.key == K_w:

      YControle = -20

      XControle = 0

    if event.key == K_s:

      YControle = 20

      XControle = 0

  Agora, ainda dentro do while, iremos colocar nossas variáveis X e YCobra para receberem elas mesmas mais o X e YControle:

XCobra = XCobra + XControle

YCobra = YCobra + YControle

  Assim nossa cobra vai se mover sem parar, mudando apenas de direção quando clicarmos nos botões do teclado. Mas a velocidade da nossa cobra está muito rápida, para resolver isso basta modificar o valor de 20 na variável XControle e todos os 20 dentro da condicional vista acima, ou podemos criar uma variável e passar nesse locais para ficar mais fácil modificar novamente no futuro.

velocidade = 10

XControle = velocidade

YControle = 0

. . .

  if event.type == KEYDOWN:

    if event.key == K_a:

      XControle = -velocidade

      YControle = 0

    if event.key == K_d:

      XControle = velocidade

      YControle = 0

    if event.key == K_w:

      YControle = -velocidade

      XControle = 0

    if event.key == K_s:

      YControle = velocidade

      XControle = 0

  Só para deixar mais interessante, repare que quando clicamos para frente e para trás a cabeça da cobra muda. Isso não aconteceria na vida real, por isso se clicarmos para ir para frente não poderíamos ir para trás desse jeito, para resolver isso só precisamos bloquear as teclas colocando condicionais desse jeito:

  if event.type == KEYDOWN:

    if event.key == K_a:

      if XControle == velocidade:

        pass

      else:

        XControle = -velocidade

        YControle = 0

    if event.key == K_d:

      if XControle == -velocidade:

        pass

      else:

        XControle = velocidade

        YControle = 0

    if event.key == K_w:

      if YControle == velocidade:

        pass

      else:

        YControle = -velocidade

        XControle = 0

    if event.key == K_s:

      if YControle == -velocidade:

        pass

      else:

        YControle = velocidade

        XControle = 0

  Agora sim, nossa cobrinha está se movimentando perfeitamente, vou ficando por aqui, nos próximos artigos estaremos concluindo nosso projeto usando o pygame, um abraço e até a próxima.

Artigo Original: https://programacao-descomplicada.blogspot.com/2022/11/pygame-melhorando-movimentacao-da-nossa.html

Compartilhe
Comentários (0)