Criando uma janela
Desenhando na tela
Agora vamos trabalhar com a função de desenho. Vejamos quais linhas do jogo_v0.py
desenham na tela.
E mais uma vez, vamos para a documentação!
Exercício 1
Resposta
Preenche a janela com a cor branca (pois o argumento foi (255, 255, 255)
). As cores são valores RGB (Red, Green, Blue) que variam entre 0 e 255. Note que existe um parênteses ao redor dos três valores. Esse parênteses é muito importante, pois define uma tupla (uma sequência de valores, semelhante a uma lista).
A variável window
é do tipo pygame.Surface
, que representa um superfície 2D que pode ser desenhada na tela. A função fill
preenche a tela toda com a cor passada. Do jeito que chamamos ela recebe só um argumento, mas a documentação mostra ela recebendo três!
Esse parâmetros extra possuem valores padrão1, então podemos não passá-los e eles receberão o valor declarado. Vamos agora interpretar isso.
Exercício 2
Resposta
O segundo parâmetro representa o retângulo que deverá ser preenchido com a cor passada para fill
.
Exercício 3
Resposta
Tudo o que é feito na tela (window
) não é mostrado para o usuário imediatamente, assim é possível desenhar várias coisas e somente depois de terminar de desenhar mostramos a nova tela (ou frame) para o usuário. Essa função é responsável por mostrar a nova tela que foi desenhada.
Desenhando retângulos#
Agora consulte a documentação de pygame.Rect
para descobrir como construir retângulos válidos.
Exercício 4
Resposta
Como visto na documentação, passamos primeiro as coordenadas x
e y
do canto superior esquerdo do retângulo e depois sua largura e altura.
Vamos juntar tudo agora.
Exercício 5
Resposta
Como queremos pintar toda a tela sempre usamos a versão sem o segundo argumento. Nem sempre nossa tela será do tamanho \(320\times 240\), então o correto aqui é não passar esse parâmetro.
Exercício 6
Resposta
Podemos eliminar algumas alternativas lembrando que a cor branca é (255, 255, 255)
. Como nossa tela tem tamanho \(640\times 480\), precisamos que nosso retângulo inicie na metade disso (ou seja, x=320
) e que ele comece no topo da tela (y=0
). Como dividimos a tela em dois na vertical, ela tem largura 320
e altura 480
. Juntando tudo isso chegamos à chamada
window.fill((255, 255, 255), pygame.Rect(320, 0, 320, 480))
Exercício 7
Nossas duas últimas tarefas são implementar as funções de loop do jogo.
-
Em Python, e diversas outras linguagens, é comum utilizarmos valores padrão para argumentos de uma função. No caso do Python esses valores são indicados com
↩nome_do_argumento=valor_padrao_do_argumento
. Esses valores são utilizados na variável caso a chamada da função não inclua esse argumento. Por exemplo: