MiniCursoPygame
-
Upload
flavio-h-farias -
Category
Documents
-
view
152 -
download
0
Transcript of MiniCursoPygame
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 2/22
Eventos do mouse pygamepygame.mouse..mouse.get_posget_pos()()
Retorna umaRetorna uma tuplatupla (x, y) referente à posição(x, y) referente à posiçãopygamepygame.mouse..mouse.get_pressedget_pressed()()
Retorna umaRetorna uma tuplatupla (button1, button2, button3)(button1, button2, button3)
Cada campo daCada campo da tuplatupla é umé um boolean boolean
Ex.:Ex.: pygamepygame.mouse..mouse.get_pressedget_pressed()[0]()[0]
Indica se o botão esquerdo foi pressionadoIndica se o botão esquerdo foi pressionado
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 3/22
Eventos do tecladoPodemos capturar as teclas pressionadas dePodemos capturar as teclas pressionadas de
duas formas:duas formas:Usando oUsando o pygamepygame..event event..get get():():
# Capturando eventos do taclado a partir
#do pygame.event.get()
for event in pygame.event.get():if event.type == KEYDOWN: # Ou KEYUP
if event.key == K_ESCAPE:
...
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 4/22
Eventos do tecladoOu usando oOu usando o pygamepygame..keykey..get_pressedget_pressed(), que retorna(), que retorna
uma lista comuma lista com booleans booleans ::
As constantes (K_ESCAPE,As constantes (K_ESCAPE, K_f K_f,, etcetc) representam o) representam o
índice referente a cada tecla nessas listasíndice referente a cada tecla nessas listas
# Capturando eventos do taclado
# a partir do pygame.key.get_pressed()
pressed_keys = pygame.key.get_pressed()
if pressed_keys[K_ESCAPE]:
...
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 5/22
ConstanteConstanteConstanteConstante Nome da teclaNome da teclaNome da teclaNome da tecla
K_ESCAPE “Esc”
K_RETURN Enter
K_BACKSPACE Backspace
K_SPACE Barra de espaço
Algumas teclas
_ , _ , ..., _
K_LEFT Seta para esquerda
K_RIGHT Seta para direita
K_UP Seta para cima
K_DOWN Seta para baixoK_0, K_1, ..., K_9 Teclas de 1 a 9
K_LSHIFT, K_RSHIFT Shift esquerdo e direito
K_LCTRL, K_RCTRL “ctrl” esquerdo e direito
K_LALT, K_RALT “Alt” esquerdo e direito
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 6/22
Onde encontrar?Documentação doDocumentação do PygamePygame
Mouse:Mouse: http://www.pygame.org/docs/ref/mouse.htmlhttp://www.pygame.org/docs/ref/mouse.html
Teclado:Teclado: http://www.pygame.org/docs/ref/key.htmlhttp://www.pygame.org/docs/ref/key.html
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 7/22
Principais MódulosImageImage – – Manipulação de imagens do sistemaManipulação de imagens do sistema
Mixer.SoundMixer.Sound – – Sons simples, efeitos sonorosSons simples, efeitos sonoros
Mixer.MusicMixer.Music – – Player de músicasPlayer de músicas
SpriteSprite – – Objetos de colisão, ex: personagensObjetos de colisão, ex: personagensTimeTime – – Manipulação do tempo no jogoManipulação do tempo no jogo
Font Font – – Criar textos e renderizar em imagensCriar textos e renderizar em imagens
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 8/22
Image
Funções para lidar com as imagens externas ao Pygame.Funções para lidar com as imagens externas ao Pygame.
Pygame.image.load(filename)Pygame.image.load(filename)
Carrega uma imagem do sistema para o jogoCarrega uma imagem do sistema para o jogo
orma os supor a os: , , n oorma os supor a os: , , n oanimado), JPEG, PNG, TGA, dentre outrasanimado), JPEG, PNG, TGA, dentre outras
# Carrega uma imagem para o Pygame.
# OBS: Carrega, NÃO blita ela na tela!
img_pedra = pygame.image.load(“images”+os.sep\\+”pedra.gif”).convert()
img_boneco = pygame.image.load(“images”+os.sep+”objetos”
\\+ “garrafa.png”).convert_alpha()
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 9/22
Image
Para que os códigos anteriores funcionemPara que os códigos anteriores funcionem
corretamente, veja a organização dos arquivos:corretamente, veja a organização dos arquivos:
programa.pyprograma.pyimages/images/
pedra.gif pedra.gif
objetos/objetos/garrafa.pnggarrafa.png
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 10/22
Image
Pygame.image.save(Surface, filename)Pygame.image.save(Surface, filename)
Salva uma imagem carregada no PygameSalva uma imagem carregada no Pygame(Surface) como um arquivo de imagem no(Surface) como um arquivo de imagem nosistema.sistema.
Formatos suportados:Formatos suportados:
BMP, TGA, PNG, JPEGBMP, TGA, PNG, JPEG
# Salvando uma imagem no sistema
# Neste pontos existe uma imagem na variável img_desenho
Pygame.image.save(img_desenho, “images”+os.sep+”desenhos”
\\+os.sep+”desenho1.jpg”)
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 11/22
Mixer
É possível manter vários sons tocando aoÉ possível manter vários sons tocando aomesmo tempomesmo tempo
Parar um ou todos os sons de uma vezParar um ou todos os sons de uma vez
pygame.mixer.stop()pygame.mixer.stop()
Para a execução de todos os sonsPara a execução de todos os sons
Pygame.mixer.unpause()Pygame.mixer.unpause()
Recomeça a execução dos sons paradosRecomeça a execução dos sons parados
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 12/22
Sound
pygame.mixer.Sound(filename)pygame.mixer.Sound(filename)
Retorna um objeto Sound, que pode ser executado eRetorna um objeto Sound, que pode ser executado eparado quando você quiserparado quando você quiser
# Carrega uma som de colisão para o jogo.
som_colisao = pygame.mixer.Sound(“sounds”+os.sep+”toc1.wav”)
…if acontece a colisao:
som_colisao. play(1) # inteiro é o numero de repetições
som_colisao.set_volume(0.7) # 0 <= volume <= 1.0
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 13/22
Music
É interno ao módulo MixerÉ interno ao módulo Mixer
Executa músicas durante o jogo.Executa músicas durante o jogo.
Pode executar apenas uma música por vez.Pode executar apenas uma música por vez.
Formatos suportados:Formatos suportados:MP3 e OGGMP3 e OGG
# Carrega uma música ambiente para o jogo.
musica =
pygame.mixer.music.load(“musics”+os.sep+”jazz_and_blues1.mp3”)
musica. play(-1) # Toca a música infinitamente
musica.set_volume(0.9) # 0 <= volume <= 1.0
Musica.fadeout(3000) # Diminui o volume de acordo com o
tempo em milisegundos
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 14/22
Sprite
Módulo próprio para osMódulo próprio para os
objetos, personagens, eobjetos, personagens, ecenário do jogocenário do jogo
Um Sprite, é a forma deUm Sprite, é a forma derepresentar um item dorepresentar um item do
rect = (x, y)
Sprite bola
..
(na tela) e uma imagem(na tela) e uma imagem
As fuções do módulo spriteAs fuções do módulo spritelidam com objetos Sprite()lidam com objetos Sprite()
Pygame.sprite.Sprite()Pygame.sprite.Sprite()Sprite.rect Sprite.rect
Sprite.imageSprite.image
image = pygame.surface
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 15/22
Sprite
Várias funcões do módulo sprite são para detecçãoVárias funcões do módulo sprite são para detecção
de colisão.de colisão.
Pygame.sprite.collide_mask(sprite_a, sprite_b)Pygame.sprite.collide_mask(sprite_a, sprite_b)
e orna um oo n can o se as magens ose orna um oo n can o se as magens osdois sprites estão se sobrepondo (colidindo)dois sprites estão se sobrepondo (colidindo)
# Verifica se dois Sprites estão colidindo.
# Neste ponto devem existir dois sprites, bola e parede.
if pygame.sprite.collide_mask(bola, parede):som_colisao.play(1)
# mude a direção da bola ou
# faça o jogador perder uma vida e recomece o jogo
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 16/22
Sprite
pygame.sprite.collide_rect(sprite_a, sprite_b)pygame.sprite.collide_rect(sprite_a, sprite_b)
Detecção de colisão entre dois sprites,Detecção de colisão entre dois sprites,usando rect (posicionamento e dimensões)usando rect (posicionamento e dimensões)
Pygame.sprite.collide_circle(sprite_a, sprite_b)Pygame.sprite.collide_circle(sprite_a, sprite_b)
Detecção de colisão usando áreas circularesDetecção de colisão usando áreas circulares
Outras fuções do módulo sprite, permitemOutras fuções do módulo sprite, permitemoutros tipos de verificação (por grupos deoutros tipos de verificação (por grupos desprites, por camada)sprites, por camada)
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 17/22
Time
Módulo responsável pela informação sobre oMódulo responsável pela informação sobre otempo no jogo.tempo no jogo.
Muito útil em jogos que possuem movimentos eMuito útil em jogos que possuem movimentos es cas ca
Regula a movimentação dos objetos na telaRegula a movimentação dos objetos na tela
Evita diferença de execução entre máquinasEvita diferença de execução entre máquinas
diferentesdiferentes
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 18/22
Time
pygame.time.Clock()pygame.time.Clock()
Cria um relógio queCria um relógio queserve para se obter aserve para se obter avariação de tempo aovariação de tempo aolongo do programalongo do programa
# Cria um relógio
clock = pygame.time.Clock()…
x , y = (10, 5)
vel_x, vel_y = 7, 3
Clock.tick()Clock.tick()
Retorna o tempo, emRetorna o tempo, emmilisegundos, desdemilisegundos, desdea última chamadaa última chamada
deste métododeste métodoDeve ser uma vezDeve ser uma vezpor looppor loop
…
While True:delta_tempo =
clock.tick()
…
x += vel_x * delta_tempo
y += vel_y * delta_tempo
# S = S0 + v * t
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 19/22
Font
Permite renderizar TrueType Fonts (*.TTF) emPermite renderizar TrueType Fonts (*.TTF) em
imagens para o jogoimagens para o jogoPermite a utilização de fontes extras, especiaisPermite a utilização de fontes extras, especiais
. .. .
Carrega uma fonte do sistemaCarrega uma fonte do sistema
Formato suportado: TTFFormato suportado: TTF
# Carrega uma fonte colocada na pasta pessoal game_fonts
fonte_jogo =
pygame.font.Font(“game_fonts”+os.sep+”showgothic_card.ttf”)
5/11/2018 MiniCursoPygame - slidepdf.com
http://slidepdf.com/reader/full/minicursopygame 20/22
Font
Font.render(texto, antialias, cor)Font.render(texto, antialias, cor)
Renderiza (Interpreta a fonte e converte em umaRenderiza (Interpreta a fonte e converte em umaimagem) o texto na cor desejadaimagem) o texto na cor desejada
re orno uma magem o ygame ur acere orno uma magem o ygame ur ace
…
tela = pygame.display.set_mode((800, 600), 0, 32)
# Carrega uma fonte colocada na pasta pessoal game_fonts
fonte_jogo =
pygame.font.Font(“game_fonts”+os.sep+”showgothic_card.ttf”)
tela.blit(fonte_jogo.render(“Que bom!”, True, (255, 0, 0)),
\\ (200,
150))