Pygame Tutorial – Parte 3

No tutorial anterior eu disse que da próxima vez falaria sobre eventos e as funções de desenho. Entretanto, o exemplo de jogo que eu sugeri, que foi o Pong, exige que eu explique alguns conceitos de manipulação de tempo e se eu falasse sobre tudo isso num mesmo tutorial seria muita coisa.

Vamos então começar pelo módulo draw, que permite desenhar formas básicas em uma superfície. Caso você precise usar somente um retângulo ou circunferência não será necessário criar um bitmap com essa imagem o que dá uma certa facilidade durante a programação e diminui o tamanho final do seu jogo.

Todas as funções recebem como primeiro e segundo argumento respectivamente: a superfície a ser desenhada e a cor do desenho. O último argumento geralmente representa a espessura da linha, caso esse valor seja zero, a figura será desenhada cheia. Essas funções retornam um retângulo que indica qual parte da superfície foi alterada, assim é possível atualizar somente a área modificada.

A documentação completa desse módulo pode ser encontrada aqui. Apesar do conteúdo estar em inglês ele é bem intuitivo e acredito que ninguém terá muitos problemas.

Com criatividade e disposição dá pra fazer qualquer coisa somente com essas primitivas. Eu que não tenho nenhum dos dois consegui fazer algo.

No programa da figura acima eu fiz uma função que desenha círculos concêntricos onde a cor é tão escura quanto menor foi seu raio.

def ball (surface, color, center):
    dr = color[0] / 32.0
    dg = color[1] / 32.0
    db = color[2] / 32.0
    for i in range (32, -1, -1):
        pygame.draw.circle (surface, (dr * i, dg * i, db * i), center, i)

E a usei da seguinte forma:

ball (self.screen, (255, 0, 0), (32, 32))
ball (self.screen, (0, 255, 0), (96, 32))
ball (self.screen, (0, 0, 255), (160, 32))
ball (self.screen, (255, 255, 0), (224, 32))
ball (self.screen, (255, 0, 255), (288, 32))
ball (self.screen, (0, 255, 255), (352, 32))
ball (self.screen, (255, 255, 255), (416, 32))

Agora com relação à classe Clock, o único método dela que usarei será o tick. Esse método recebe quantos frames por segundo você deseja que o seu programa rode e garante que a velocidade seja no máximo essa.

Com essas ferramentas é possível começar a criar o Pong. Pra quem não conhece (impossível!) o jogo é constituído de uma bola que deve ser rebatida pelos jogadores. Quando um a deixa passar, o outro marca um ponto. No código, que pode ser baixado aqui, há somente o que pode ser visto na figura abaixo, além de uma explicação melhor sobre o módulo draw. No próximo tutorial, quando finalmente veremos os eventos, já será possível jogar alguma coisa.

Uma resposta para “Pygame Tutorial – Parte 3”

  1. Wener Disse:

    Tou estudando Python e o professor passou um projeto pra entregar em Agosto. Eu resolvi fazer um jogo, e pra isso seria bom aprender um pouco de Pygame. Cara… tou gostando muito desses tutoriais…
    mas vc poderia postar eles com mais frequencia? Só uma pergunta.
    Na net não tem muitos tutoriais em portugues

Deixe uma resposta