Python e o Pygame

Bem como já comentei estou aprendendo Python. Existem vários motivos possíveis para se aprender essa linguagem de programação.

O Python é uma linguagem que é famosa por ter “baterias incluídas”, um termo que se vê bastante na comunidade, isso devido as muitas ferramentas inclusas com a linguagem que tornam as coisas mais simples e rápidas. Bem mas o motivo pelo qual eu decidi aprender essa linguagem foi para o desenvolvimento de jogos. Fazendo uma pequena vasculhada pela internet encontrei várias bibliotecas voltadas para o desenvolvimento de jogos que são em Python.

Achei muito bacana todas elas, e comecei a estudar justamente a que pareceu ser mais simples e de rápido aprendizado, que na minha opinião é o Pygame.

O conceito macro das funcionalidades do Pygame são:

  • Eventos (Capturade teclas pressionadas, entre outros)
  • Lógica (código do seu jogo onde irá )
  • Desenhar e Atualizar a Tela

Aqui um exemplo de um circulo controlado com o pygame


import sys, pygame
from pygame.locals import *

# Constantes da Janela
RAIO_CIRCULO = 20
INCREMENTO = 5
BAIXO = 'baixo'
CIMA = 'cima'
ESQUERDA = 'esquerda'
DIREITA = 'direita'
LARGURA = 800
ALTURA = 600
TITULO = "Teste Círculo"

# Cores
BRANCO = (255, 255, 255)
PRETO = (0, 0, 0)

# Taxa de atualização da tela
FPS = 15

pygame.init()

TELA = pygame.display.set_mode((LARGURA, ALTURA))
pygame.display.set_caption(TITULO)

fpsClock = pygame.time.Clock()
pygame.key.set_repeat(1, 1)

global x, y, teclaPressionada
teclaPressionada = None
# Colocando as coordenadas iniciais no centro
x, y = int(LARGURA/2), int(ALTURA/2)

# Método onde os eventos são capturados
def eventos():
    global teclaPressionada
    for event in pygame.event.get():
        # Testando se o evento para sair foi chamado ou evento é de uma tecla pressionada e essa tecla é o ESC
        if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
            pygame.quit()
            sys.exit()
        # Testando se uma tecla foi pressionada
        elif event.type == KEYDOWN:
            tecla = pygame.key.get_pressed()
            if tecla[K_RIGHT]:
                teclaPressionada = DIREITA
            if tecla[K_LEFT]:
                teclaPressionada = ESQUERDA
            if tecla[K_UP]:
                teclaPressionada = CIMA
            if tecla[K_DOWN]:
                teclaPressionada = BAIXO

def logica():
    global x,y
    if teclaPressionada == DIREITA:
        x += INCREMENTO
    if teclaPressionada == ESQUERDA:
        x -= INCREMENTO
    if teclaPressionada == CIMA:
        y -= INCREMENTO
    if teclaPressionada == BAIXO:
        y += INCREMENTO

    if x >= LARGURA + RAIO_CIRCULO:
        x = 0
    elif x <= 0 - RAIO_CIRCULO:
        x = LARGURA
    if y >= ALTURA + RAIO_CIRCULO:
        y = 0
    elif y <= 0 - RAIO_CIRCULO:
        y = ALTURA

def desenha():
    pygame.draw.circle(TELA, PRETO, (x, y), RAIO_CIRCULO)

while True:
    TELA.fill(BRANCO)
    eventos()
    logica()
    desenha()

    pygame.display.update()
    fpsClock.tick(FPS)


  • O pygame.init() é um método que inicializa as configurações do Pygame.
  • pygame.time.Clock() é um método para setar a taxa de atualização dos quadros do jogo
  • pygame.key.set_repeat(1, 1) é um método para que as teclas sejam capturadas em menos tempo
  • pygame.display.update() é quando a tela será realmente atualizada antes do frame terminar

Obs: Fiz esse código de exemplo apenas para lucidar os conceitos básicos dessa API.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s