idez

Post on 13-Dec-2014

2.235 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

CRIANDO JOGOS COM

PYTHON E PYGAME

Diego Lopes Marques da Silvadiego.lopes@dce.ufpb.br

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

Max Azevêdo da SilvaMax.azevedo@dce.ufpb.br

2

Onde Baixar?

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

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

3

Versões

Optamos por usar as versões

Python 2.6Pygame 1.9

4

Porque Python e Pygame?

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

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.

6

Jogos feitos com Pygame

Legacy Of Magic

7

Jogos feitos com Pygame

Frets on fire

8

Jogos feitos com Pygame

PyQuimica

9

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

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

10

Elementos do Pygame Eventos

Imagem

11

Elementos do Pygame Texto

Surface

12

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

geralmente usados como personagens, inimigos ou objetos móveis

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.

14

Elementos do Pygame Sons

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)

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

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

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.

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()

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)

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))

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))

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.

24

Eventos do MouseDiretamente

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

25

Eventos do Mouse

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

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.

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.

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")

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))

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.

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()

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()

33

DUVIDAS?

top related