Jogos Python

Jogos Python é um pacote que permite a criação de jogos de um jeito mais fácil, usando pygame por baixo dos panos.

Instalação

Para instalar é preciso ter o gerenciador de pacotes pip, que normalmente vem instalado junto com o Python (mas pode ser instalado separadamente, se preciso) e usar o comando pip install jogos_python.

Primeiros Passos

Após a instalação da biblioteca, você pode usá-la no seu script com import jogos-python as jp.

Para acessar constantes, funções e classes, é necessário usar um prefixo na frente. Se você usar o comando acima, jp é o prefixo. Caso você omita e use apenas import jogos-python, o prefixo será jogos-python (não recomendamos, pois fica muito grande).

Exemplos de uso:

import jogos-python as jp

tela = jp.abrir_tela(cor=jp.verde)

galinha = jp.Objeto('galinha')

galinha.tecla_mover_para_esquerda = jp.tecla_seta_para_esquerda
galinha.tecla_mover_para_direita = jp.tecla_seta_para_direita
galinha.tecla_mover_para_cima = jp.tecla_seta_para_cima
galinha.tecla_mover_para_baixo = jp.tecla_seta_para_baixo

while True:
    galinha.mover()

Observe que, para criar o objeto ‘galinha’, usamos jp.Objeto('galinha'), mas depois de criado, usamos apenas galinha, uma variável do seu programa, para fazer referência ao objeto criado.

Funções auxiliares

Funções que não estão ligadas a uma classe específica, mas podem ser usadas no seu código. (Lembre-se de incluir o prefixo antes dessas funções, explicado em Primeiros Passos)

esperar( tempo ):

Faz o código demorar tempo segundos antes de prosseguir. tempo também pode ser um número decimal, por exemplo, 0.5.

definir_frequencia( frequencia ):

Quando você precisa de uma frequência de execução de determinada ação. Analogo de definir_periodo, não devem ser usados juntos.

definir_periodo( periodo ):

Quando você precisa de um intervalo entre uma execução e outra de determinada ação. Analogo de definir_frequencia, não devem ser usados juntos.

Pausar/Despausar

pausar( tempo=False ):

Pausa o jogo. Se fornecido o parâmetro tempo, irá pausar por tempo segundos. Caso contrário, deve-se usar a função despausar para “despausar” manualmente o jogo.

despausar():

“Despausa” o jogo. Desfaz o que pausar faz.

Tela

Classe da variável retornada, ao usar a seguinte função:

abrir_tela()

Abre uma nova tela/janela. Deve ser o primeiro comando usado após importar a biblioteca.

abrir_tela(largura=800, altura=600, cor = roxo, fps= 60) -> Tela

Tipo dos Parâmetros:

Tamanho

largura <int> - largura da tela

altura <int> - altura da tela

cor <tuple> - cor de fundo da tela. Existem variáveis na biblioteca, com o nome de algumas cores. Lembre-se de incluir o prefixo antes dessas cores (explicado em Primeiros Passos)

fps <int> - taxa de atualização da tela, em frames por segundo

Propriedades da Classe:

Tamanho

largura <int> - largura da tela aberta pela função, não pode ser alterada.

altura <int> - altura da tela aberta pela função, não pode ser alterada.

cor <int> - cor de fundo da tela aberta pela função.

fps <int> - taxa de atualização da tela, em frames por segundos.

Cores

Cores pré-definidas dentro da biblioteca: (Lembre-se de incluir o prefixo antes dessas cores, explicado em Primeiros Passos)

vermelho,

verde,

azul,

azul_escuro,

verde_escuro,

roxo,

amarelo,

laranja,

rosa,

cinza,

marrom,

preto

Teclas

Funções relacionadas às teclas:

tecla_apertada( tecla ):

Função usada para verificar se uma tecla está sendo pressionada naquele momento. O argumento da função deve uma das teclas definidas na biblioteca.

tecla_apertada( tecla ) -> bool

Valores de teclas pré-definidos: (Lembre-se de incluir o prefixo antes dessas teclas, explicado em Primeiros Passos)

#letras:

tecla_a,

tecla_b,

tecla_c,

tecla_d,

tecla_e,

tecla_f,

tecla_g,

tecla_h,

tecla_i,

tecla_j,

tecla_k,

tecla_l,

tecla_s,

tecla_t,

tecla_u,

tecla_v,

tecla_w,

tecla_x,

tecla_y,

tecla_z

#numeros do centro do teclado:

tecla_0,

tecla_1,

tecla_2,

tecla_3,

tecla_4,

tecla_5,

tecla_6,

tecla_7,

tecla_8,

tecla_9

#números do teclado numérico:

tecla_numero_0,

tecla_numero_1,

tecla_numero_2,

tecla_numero_3,

tecla_numero_4,

tecla_numero_5,

tecla_numero_6,

tecla_numero_7,

tecla_numero_8,

tecla_numero_9

#setas:

tecla_seta_para_esquerda,

tecla_seta_para_direita,

tecla_seta_para_cima,

tecla_seta_para_baixo

Direções

Direções pré-definidas: (Lembre-se de incluir o prefixo antes dessas direções, explicado em Primeiros Passos)

para_esquerda = [-1,0],

para_direita = [1,0],

para_cima = [0,-1],

para_baixo = [0,1],

direcao_nula = [0,0]

Objeto

Objeto( nome_da_imagem ):

Classe usada para representar objetos na biblioteca. Os objetos podem se mover, colidir com outro objeto e são clicáveis (usando o mouse ou a tela touchscreen) para gerar alguma ação, de forma similar às teclas do teclado.

Tipo dos Parâmetros:

nome_da_imagem <str> - Nome da imagem, pode ser uma imagem salva no computador do usuário, neste caso, deve ser incluída a extensão. Outra possibilidade é usar uma das imagens da biblioteca, listadas abaixo.

Possibilidades para parâmetro nome_da_imagem:

‘galinha’, ‘pintinho’, ‘ovo’, ‘fazenda’

Exemplo:

import jogos-python as jp

tela = jp.abrir_tela()

galinha = jp.Objeto('galinha')

Funções da Classe:

Colisões

colidiu_com( objeto ):

Testa se o objeto colidiu com algum outro objeto

tocou_na_direita( objeto ):

Testa se o objeto tocou na parte mais à esquerda de outro objeto

tocou_na_esquerda( objeto ):

Testa se o objeto tocou na parte mais à direita de outro objeto

tocou_em_cima( objeto ):

Testa se o objeto tocou em cima de outro objeto

tocou_embaixo( objeto ):

Testa se o objeto tocou embaixo de outro objeto

espelhar( forma = ‘horizontalmente’ ):

Espelha imagem. Por padrão, espelha horizontalmente. Possibilidades para parâmetro nome_da_imagem:

‘horizontalmente’,’verticalmente’

apagar():

Apaga o objeto. Este método faz o objeto sumir, mas sem perder sua referência ( nome do objeto ).

Movimentação

andar( x, y ):

Permite andar com objeto horizontalmente x unidades e verticalmente y unidades.

adicionar_movimento( movimento ):

Adiciona movimento a partir de uma função já criada no programa. Esta função deve ter um parâmetro objeto, que será usado como o objeto usada

pular( velocidade_de_pulo=100, delay=0.1 ):

Faz o objeto pular na tela. Você pode mudar a velocidade do pulo e quanto tempo vai demorar (com o delay).

Propriedades da Classe:

nome_da_imagem <str> - nome da imagem mostrada pelo objeto

Coordenadas

x <int> - Define a coordenada horizontal do objeto

y <int> - Define a coordenada vertical do objeto

posicao <tuple> - Posição do objeto. Corresponde a usar uma lista [x,y]

esquerda <int> - Parte mais à esquerda do objeto

direita <int> - Parte mais à direita do objeto

topo <int> - topo do objeto

base <int> - base do objeto

centro_x <int> - centro do objeto na direção horizontal

centro_y <int> - centro do objeto na direção vertical

centro <tuple> - centro do objeto. Semelhante a criar uma lista [centro_x, centro_y].

Tamanho

largura <int> - Define largura do objeto

altura <int> - Define altura do objeto

manter_proporção <bool> - Se for igual a True (verdadeiro), alterar a altura também mudará a largura, para manter a proporção entre as ambas. O mesmo acontece ao mudar largura. Padrão: True

pressionado <bool> - Apenas leitura. Testar se ele está sendo pressionado.

existe <bool> - Se for igual a True (verdadeiro), o objeto “existe” (é mostrado na tela). Caso, contrário, o objeto não é mostrado na tela. Para não mostrar na tela, use apagar(). Não confundir com visivel. Padrão: True

visivel <bool> - True se o objeto está vísivel na tela, False caso esteja invisível. Padrão: True

solido <bool> - Se for igual a True (verdadeiro), o objeto é sólido e reage a colisões com outros objetos. Padrão: True.

estatico <bool> - Se for igual a True (verdadeiro), o objeto não se mexe em caso de colisão. Padrão: False

Movimentação

cai <bool> - Se for igual a True (verdadeiro), o objeto sofrerá ação da gravidade e irá cair. Padrão: False

manter_na_tela <bool> - Se for igual a True (verdadeiro), restringe que o objeto saia da tela. Padrão: True

velocidade <int> - Velocidade que o objeto irá se mover, em pixels por segundo. Padrão: 100 direção <tuple> - Direção que o objeto está se movendo. Com direcao_nula, ele não se move. Padrão: direcao_nula

tecla_mover_para_esquerda <tecla> - Define a tecla que fará este objeto se movimentar para esquerda quando pressionada

tecla_mover_para_direita <tecla> - Define a tecla que fará este objeto se movimentar para direita quando pressionada

tecla_mover_para_cima <tecla> - Define a tecla que fará este objeto se movimentar para cima quando pressionada

tecla_mover_para_baixo <tecla> - Define a tecla que fará este objeto se movimentar para baixo quando pressionada

botao_mover_para_esquerda <Botao | Objeto> - Define o botão ou objeto que fará este objeto se movimentar para esquerda quando pressionado

botao_mover_para_direita <Botao | Objeto> - Define o botão ou objeto que fará este objeto se movimentar para direita quando pressionado

botao_mover_para_cima <Botao | Objeto> - Define o botão ou objeto que fará este objeto se movimentar para cima quando pressionado

botao_mover_para_baixo <Botao | Objeto> - Define o botão ou objeto que fará este objeto se movimentar para baixo quando pressionado

Botao

Botao( x=0, y=0, largura=50, altura=50, cor=preto)

Classe usada para criar e manipular botões na biblioteca.

Os botões são clicáveis, usando o mouse ou a tela touchscreen e podem ser usados para gerar alguma ação, de forma similar às teclas do teclado.

Tipo dos Parâmetros:

x <int> - Define a coordenada horizontal do botão

y <int> - Define a coordenada vertical do botão

largura <int> - Define largura do botão

altura <int> - Define altura do botão

cor <tuple> - Define a cor do botão

Propriedades da Classe:

Coordenadas

x <int> - Define a coordenada horizontal do botão

y <int> - Define a coordenada vertical do botão

Tamanho

largura <int> - Define largura do botão

altura <int> - Define altura do botão

cor <tuple> - Define a cor do botão

pressionado <bool> - Apenas leitura. Testar se ele está sendo pressionado.

Texto

Texto( mensagem, cor=preto, x=0, y=0):

Classe usada para mostrar texto na tela na biblioteca.

O texto pode ser customizado, ter cores diferentes e ser posicionado na tela.

Propriedades da Classe:

Coordenadas

x <int> - Define a coordenada horizontal do texto

y <int> - Define a coordenada vertical do texto

mensagem <str> - Mensagem que será exibida no texto.

cor <tuple> - cor do texto