Idez

33
CRIANDO JOGOS COM PYTHON E PYGAME Diego Lopes Marques da Silva [email protected] http://sites.google.com/site/ lmsdiego/ Max Azevêdo da Silva [email protected]

description

 

Transcript of Idez

Page 1: Idez

CRIANDO JOGOS COM

PYTHON E PYGAME

Diego Lopes Marques da [email protected]

http://sites.google.com/site/lmsdiego/

Max Azevêdo da [email protected]

Page 2: Idez

2

Onde Baixar?

Python:http://www.python.org/

Pygame:http://www.pygame.org/news.html

Page 3: Idez

3

Versões

Optamos por usar as versões

Python 2.6Pygame 1.9

Page 4: Idez

4

Porque Python e Pygame?

Fracamente tipadaFácil identaçãoAbstração dos "códigos pesados“

Page 5: Idez

5

Introdução a biblioteca Pygame.

Pygame é uma biblioteca de jogos multiplataforma (independente de sistema operacional) feita para ser utilizada em conjunto com a linguagem de programação Python.

Page 6: Idez

6

Jogos feitos com Pygame

Legacy Of Magic

Page 7: Idez

7

Jogos feitos com Pygame

Frets on fire

Page 8: Idez

8

Jogos feitos com Pygame

PyQuimica

Page 9: Idez

9

Elementos do Pygame Tela – Elemento principal de um jogo. É nela

onde tudo começa. É considerada a superfície principal

Page 10: Idez

10

Elementos do Pygame Eventos

Imagem

Page 11: Idez

11

Elementos do Pygame Texto

Surface

Page 12: Idez

12

Elementos do Pygame SpriteSprites são imagens com animação

geralmente usados como personagens, inimigos ou objetos móveis

Page 13: Idez

13

Elementos do Pygame Clock

O clock é um elemento muito importante de qualquer jogo, pois é este módulo que irá indicar a frequência com que as instruções do loop são executadas, ou seja, a quantidade de quadros por segundo do loop.

Page 14: Idez

14

Elementos do Pygame Sons

Page 15: Idez

15

CRIANDO UMA TELAimport pygameEsta linha serve para importar o módulo

Pygame

from pygame.locals import * importa os Locals do PyGame que contém

eventos de mouse, teclado, joystick, etc.

pygame.init() Não se pode chamar nenhuma função do

pygame sem antes fazer pygame.init(). Se deu certo, ele retorna (6,0)

Page 16: Idez

16

CRIANDO UMA TELA

tela=pygame.display.set_mode((larg,Altura))

Cria uma janela no tamanho passado por parâmetro.

continuar = True variável de controle que irá servir para o loop

infinito.

clock = pygame.time.clock()Atribuição da função para a variável clock

Page 17: Idez

17

CRIANDO UMA TELA

while(continuar): clock.tick(60)for event in pygame.event.get():

if event.type==QUIT: continuar=False

O Laço principal é onde vai ter tudo que precisar ser usado constantemente Se você não pegar os eventos(pygame.event.get()) a janela trava

Clock.tick (60) – Indica que o jogo irá chamar 60 quadros por segundo

Page 18: Idez

18

CRIANDO UMA TELA

tela.fill((corR,corG,corB)) Define o cor de fundo da tela, no formato RGB

ou HEXADECIMAL.http://www.efeitosespeciais.net/

tabela.htmtela.blit(superficie,(int,int))Pinta uma superfície na tela.

pygame.display.flip() Atualiza a tela.

Page 19: Idez

19

import pygame

from pygame.locals import*

pygame.init()

tela =

pygame.display.set_mode((larg,altura))

Clock = pygame.time.Clock()

continuar = True

while(continuar):

clock.tick(60)

for event in pygame.event.get():

if event.type==QUIT:

continuar=False

tela.fill((corR,corG,corB))

tela.blit(superficie(int,int))

pygame.display.flip()

Page 20: Idez

20

A FUNÇÃO DRAW()

O módulo draw, serve para desenhar figuras básicas em superfícies como, círculo, retângulo, etc.

LINHApygame.draw.line(superfície, (corR,corG,corB), (posXinicio,posYinicio),

(posXfinal,posYfinal),

largura)

Page 21: Idez

21

ADICIONANDO IMAGENS

O PyGame tem recursos para ler e salvar imagens. Por padrão o formato Bitmap(BMP) é suportado, suportados, pórém, também podemos carregar arquivos PNG( mais comum para jogos), GIF, JPEG

icone = pygame.image.load("icone.png")

.convert_alpha()

Convert_alpha() – bytes para pixels tela.blit(icone, (int,int))

Page 22: Idez

22

ADICIONANDO TEXTOS Pygame também disponibiliza módulo para

trabalhar com fontes. Fora do loop texto = pygame.font.SysFont(fonte, 20) Ou texto = pygame.font.Font(fonte, 30) Dentro do loop palavra = texto.render(String, True, (cor))

tela.blit(palavra,(int,int))

Page 23: Idez

23

Eventos do Mouse Para eventos do mouse, o Pygame

disponibiliza duas formas. Indiretamente através dos tipos de eventos,

onde se tem 3 tipos:

pygame.MOUSEMOTION: mouse movendo pygame.MOUSEBUTTONDOWN: apertar botão pygame.MOUSEBUTTONUP: soltar botão

Dessa forma, não se pode precisar qual botão irá apertar.

Page 24: Idez

24

Eventos do MouseDiretamente

pygame.mouse.get_pressed()[0]pygame.mouse.get_pressed()[1]pygame.mouse.get_pressed()[2]

Page 25: Idez

25

Eventos do Mouse

pygame.mouse.get_pos()Pega a posição do mouse

Page 26: Idez

26

Eventos do Teclado

Vejamos agora, como manipular eventos de teclado no pygame.

tecla = pygame.key.get_pressed()if tecla[K_LEFT]:

print("esquerda")

http://www.pygame.org/docs/ref/key.html.

Page 27: Idez

27

A FUNÇÃO RECT

A função rect, serve para detectar colisões das imagens, textos, etc.

Utilizaremos com a imagem carregada anteriormente

imagemRect = icone.get_rect().move(pos)

Cria uma váriavel imagemRect que vai criar um retângulo na figura de acordo com a posição passada.

Page 28: Idez

28

A FUNÇÃO RECT

Agora com a imagem “circulada”, podemos fazer com que o mouse a identifique, através do método collidepoint.

ificoneRect.collidepoint(pygame.mouse.get_pos()):

print("ok")

Page 29: Idez

29

A FUNÇÃO SURFACE() São superfícies nas quais se desenha Toda tela é uma superfície Criando uma superfície superficie = pygame.Surface ((tamanhoX, tamanhoY))

superficie.fill((corR, corG, corB))tela.blit(superficie, (posX, posY))

Page 30: Idez

30

A FUNÇÃO SURFACE()

Superfícies também podem ser vazias, que servem como uma superfície auxiliar.

superficie = pygame.Surface((0,0))

É muito utilizada para imagens e textos.

Page 31: Idez

31

Adicionando Sons

Para adicionar sons em Pygame, é muito simples.

Primeiro importamos o módulo mixer.import pygame.mixer

Depois,criamos uma variável que recebe o arquivo

som = pygame.mixer.Sound(arquivo)

através do método play, o arquivo é tocado.som.play()

Para parar o arquivo de som, invocamos o método stop

Som.stop()

Page 32: Idez

32

Adicionando Musicas

Para adicionar Musicas de fundo no Pygame, utilizamos o mesmo módulo mixer, porém outra função, dessa vez, sem a variável

pygame.mixer.Sound(arquivo)

Para tocar o arquivoPygame.mixer.Sound.play()

Para parar o arquivoPygame.mixer.Sound.stop()

Page 33: Idez

33

DUVIDAS?