Idez

3.986 visualizações

Publicada em

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.986
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
88
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Idez

  1. 1. CRIANDO JOGOS COM PYTHON E PYGAME<br />Diego Lopes Marques da Silva<br />diego.lopes@dce.ufpb.br<br />http://sites.google.com/site/lmsdiego/<br />Max Azevêdo da Silva<br />Max.azevedo@dce.ufpb.br<br />
  2. 2. Onde Baixar?<br />Python:<br />http://www.python.org/<br />Pygame:<br />http://www.pygame.org/news.html<br />2<br />
  3. 3. Versões<br />Optamos por usar as versões<br />Python 2.6<br />Pygame 1.9<br />3<br />
  4. 4. Porque Python e Pygame?<br />Fracamente tipada<br />Fácil identação<br />Abstração dos "códigos pesados“<br />4<br />
  5. 5. Introdução a biblioteca Pygame.<br /><ul><li>Pygame é uma biblioteca de jogos multiplataforma (independente de sistema operacional) feita para ser utilizada em conjunto com a linguagem de programação Python. </li></ul>5<br />
  6. 6. Jogos feitos com Pygame<br /><ul><li>Legacy Of Magic</li></ul>6<br />
  7. 7. Jogos feitos com Pygame<br /><ul><li>Frets on fire</li></ul>7<br />
  8. 8. Jogos feitos com Pygame<br /><ul><li>PyQuimica</li></ul>8<br />
  9. 9. Elementos do Pygame<br /><ul><li>Tela – Elemento principal de um jogo. É nela onde tudo começa. É considerada a superfície principal</li></ul>9<br />
  10. 10. Elementos do Pygame<br /><ul><li>Eventos
  11. 11. Imagem</li></ul>10<br />
  12. 12. Elementos do Pygame<br /><ul><li>Texto
  13. 13. Surface</li></ul>11<br />
  14. 14. Elementos do Pygame<br /><ul><li>Sprite</li></ul>Sprites são imagens com animação geralmente usados como personagens, inimigos ou objetos móveis<br />12<br />
  15. 15. Elementos do Pygame<br /><ul><li>Clock</li></ul>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.<br />13<br />
  16. 16. Elementos do Pygame<br /><ul><li>Sons</li></ul>14<br />
  17. 17. CRIANDO UMA TELA<br /><ul><li>importpygame</li></ul>Esta linha serve para importar o módulo Pygame<br /><ul><li>frompygame.localsimport *</li></ul> importa os Locals do PyGame que contém eventos de mouse, teclado, joystick, etc. <br /><ul><li>pygame.init() </li></ul>Não se pode chamar nenhuma função do pygame sem antes fazer pygame.init(). Se deu certo, ele retorna (6,0)<br />15<br />
  18. 18. CRIANDO UMA TELA<br /><ul><li>tela=pygame.display.set_mode((larg,Altura))</li></ul>Cria uma janela no tamanho passado por parâmetro.<br /><ul><li>continuar = True</li></ul> variável de controle que irá servir para o loop infinito.<br /><ul><li>clock = pygame.time.clock()</li></ul> Atribuição da função para a variável clock<br />16<br />
  19. 19. CRIANDO UMA TELA<br />while(continuar):<br />clock.tick(60)<br /> for event in pygame.event.get():<br /> if event.type==QUIT:<br />continuar=False<br />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<br />Clock.tick (60) – Indica que o jogo irá chamar 60 quadros por segundo<br />17<br />
  20. 20. CRIANDO UMA TELA<br /><ul><li>tela.fill((corR,corG,corB)) </li></ul>Define o cor de fundodatela, no formato RGB ou HEXADECIMAL.<br />http://www.efeitosespeciais.net/tabela.htm<br /><ul><li>tela.blit(superficie,(int,int))</li></ul>Pintaumasuperfícienatela.<br /><ul><li>pygame.display.flip() </li></ul>Atualiza a tela.<br />18<br />
  21. 21. import pygame<br />from pygame.locals import*<br />pygame.init()<br />tela =<br />pygame.display.set_mode((larg,altura)) <br />Clock = pygame.time.Clock()<br />continuar = True<br />while(continuar):<br />clock.tick(60)<br /> for event in pygame.event.get(): <br /> if event.type==QUIT:<br />continuar=False<br />tela.fill((corR,corG,corB)) <br />tela.blit(superficie(int,int)) <br />pygame.display.flip()<br />19<br />
  22. 22. A FUNÇÃO DRAW()<br /><ul><li>O módulo draw, serve para desenhar figuras básicas em superfícies como, círculo, retângulo, etc.
  23. 23. LINHA</li></ul>pygame.draw.line(superfície, (corR,corG,corB), (posXinicio,posYinicio),<br />(posXfinal,posYfinal),<br /> largura)<br />20<br />
  24. 24. ADICIONANDO IMAGENS<br /><ul><li>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
  25. 25. icone = pygame.image.load("icone.png")</li></ul> .convert_alpha()<br />Convert_alpha() – bytes para pixels<br />tela.blit(icone, (int,int))<br />21<br />
  26. 26. ADICIONANDO TEXTOS<br /><ul><li>Pygame também disponibiliza módulo para trabalhar com fontes.
  27. 27. Fora do loop
  28. 28. texto = pygame.font.SysFont(fonte, 20)
  29. 29. Ou
  30. 30. texto = pygame.font.Font(fonte, 30)
  31. 31. Dentro do loop
  32. 32. palavra = texto.render(String, True, (cor))
  33. 33. tela.blit(palavra,(int,int))</li></ul>22<br />
  34. 34. Eventos do Mouse<br /><ul><li>Para eventos do mouse, o Pygame disponibiliza duas formas.
  35. 35. Indiretamente através dos tipos de eventos, onde se tem 3 tipos:
  36. 36. pygame.MOUSEMOTION: mouse movendo
  37. 37. pygame.MOUSEBUTTONDOWN: apertar botão
  38. 38. pygame.MOUSEBUTTONUP: soltar botão
  39. 39. Dessa forma, não se pode precisar qual botão irá apertar.</li></ul>23<br />
  40. 40. Eventos do Mouse<br /> Diretamente<br />pygame.mouse.get_pressed()[0]<br />pygame.mouse.get_pressed()[1]<br />pygame.mouse.get_pressed()[2]<br />24<br />
  41. 41. Eventos do Mouse<br />pygame.mouse.get_pos()<br />Pega a posição do mouse<br />25<br />
  42. 42. Eventos do Teclado<br /><ul><li>Vejamos agora, como manipular eventos de teclado no pygame.
  43. 43. tecla = pygame.key.get_pressed()</li></ul>if tecla[K_LEFT]:<br />print("esquerda")<br />http://www.pygame.org/docs/ref/key.html.<br />26<br />
  44. 44. A FUNÇÃO RECT<br /><ul><li>A função rect, serve para detectar colisões das imagens, textos, etc.
  45. 45. Utilizaremos com a imagem carregada anteriormente
  46. 46. imagemRect= icone.get_rect().move(pos)
  47. 47. Cria uma váriavelimagemRect que vai criar um retângulo na figura de acordo com a posição passada.</li></ul>27<br />
  48. 48. A FUNÇÃO RECT<br />Agora com a imagem “circulada”, podemos fazer com que o mouse a identifique, através do método collidepoint.<br />if<br />iconeRect.collidepoint(pygame.mouse.get_pos()):<br />print("ok")<br />28<br />
  49. 49. A FUNÇÃO SURFACE()<br /><ul><li>São superfícies nas quais se desenha
  50. 50. Toda tela é uma superfície
  51. 51. Criando uma superfície</li></ul>superficie= pygame.Surface<br /> ((tamanhoX, tamanhoY))<br />superficie.fill((corR, corG, corB))<br />tela.blit(superficie, (posX, posY))<br />29<br />
  52. 52. A FUNÇÃO SURFACE()<br /><ul><li>Superfícies também podem ser vazias, que servem como uma superfície auxiliar.</li></ul>superficie = pygame.Surface((0,0))<br />É muito utilizada para imagens e textos.<br />30<br />
  53. 53. Adicionando Sons<br />Para adicionar sons em Pygame, é muito simples.<br />Primeiro importamos o módulo mixer.<br />importpygame.mixer<br />Depois,criamos uma variável que recebe o arquivo<br />som = pygame.mixer.Sound(arquivo)<br />através do método play, o arquivo é tocado.<br />som.play()<br />Para parar o arquivo de som, invocamos o método stop<br />Som.stop()<br />31<br />
  54. 54. Adicionando Musicas<br />Para adicionar Musicas de fundo no Pygame, utilizamos o mesmo módulo mixer, porém outra função, dessa vez, sem a variável<br />pygame.mixer.Sound(arquivo)<br />Para tocar o arquivo<br />Pygame.mixer.Sound.play()<br />Para parar o arquivo<br />Pygame.mixer.Sound.stop()<br />32<br />
  55. 55. DUVIDAS?<br />33<br />

×