Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.88 KB | None | 0 0
  1. # coding:utf-8
  2. # jogo.py
  3.  
  4. import pygame
  5. import os
  6. from pygame.locals import *
  7.  
  8. # Inicia o pygame
  9. pygame.init()
  10.  
  11. # Tela de 640x480
  12. tela = pygame.display.set_mode((640,480))
  13. pygame.display.set_caption("Jogo do Boneco")
  14.  
  15. # Prepara o fundo para ser utilizado
  16. fundo = pygame.Surface((640,480))
  17. fundo = fundo.convert()
  18. fundo.fill((0,0,0))
  19.  
  20. # Carrega e prepara o fundo
  21. arq_fundo = os.path.join('sprites','fundo.png')
  22. img_fundo = pygame.image.load(arq_fundo)
  23. img_fundo = img_fundo.convert()
  24.  
  25. # Carrega e prepara o chão
  26. arq_chao = os.path.join('sprites', 'chao.png')
  27. img_chao = pygame.image.load(arq_chao)
  28. img_chao = img_chao.convert()
  29.  
  30. # Carrega o sprite do boneco
  31. arq_boneco = os.path.join('sprites', 'boneco.png')
  32. boneco = pygame.image.load(arq_boneco)
  33. #boneco = boneco.convert()
  34.  
  35. # Prepara o clock para ser usado
  36. clock = pygame.time.Clock()
  37.  
  38. # X inicial do personagem
  39. pers_x = 10
  40.  
  41. # Movimento sendo executado (0 = parado)
  42. mov = 0
  43.  
  44. # Ação da animação
  45. acao = 0
  46.  
  47. # Para qual lado o personagem está indo
  48. indo_para = "direita"
  49.  
  50. # Se o personagem está correndo
  51. correndo = False
  52.  
  53. # Máximo FPS do jogo
  54. fps = 80
  55.  
  56. # Contagem de frames da animação
  57. contagem_frames = 0
  58.  
  59. # Loop do jogo
  60. while True:
  61.     # Verifica os eventos do teclado
  62.     for evt in pygame.event.get():
  63.         # Se for pra sair (X no canto ou ESC)
  64.         if evt.type == QUIT or (evt.type == KEYDOWN and evt.key == K_ESCAPE):
  65.             exit()
  66.  
  67.         if evt.type == KEYDOWN:
  68.             # Direita
  69.             if evt.key == K_RIGHT:
  70.                 mov = +1
  71.             # Esquerda
  72.             elif evt.key == K_LEFT:
  73.                 mov = -1
  74.             # Shift
  75.             if evt.key == K_LSHIFT:
  76.                 correndo = True
  77.         # Se soltar a tecla
  78.         if evt.type == KEYUP:
  79.             if evt.key != K_LSHIFT:
  80.                 mov = 0
  81.             # Se tiver soltado o SHIFT...
  82.             else:
  83.                 correndo = False
  84.  
  85.     # Tempo para animar o personagem
  86.     tempo = clock.tick(fps) / 10.0
  87.  
  88.     # Se não houver movimentação
  89.     if mov == 0:
  90.         acao = 0
  91.     # Se houver movimentação
  92.     else:
  93.         if contagem_frames > fps / 7:
  94.             contagem_frames = 0
  95.             # 3 estados e animação 0,1,2
  96.             if acao > 2:
  97.                 acao = 0
  98.             # Se não for o último estado, avança
  99.             else:
  100.                 acao += 1
  101.         else:
  102.             contagem_frames += 1
  103.  
  104.     # Desenha o fundo
  105.     tela.blit(img_fundo, (0,0))
  106.     tela.blit(img_fundo, (416,0))
  107.     tela.blit(img_fundo, (0,416))
  108.     tela.blit(img_fundo, (416,416))
  109.  
  110.     # Desenha o chão
  111.     tela.blit(img_chao, (0, 390))
  112.     tela.blit(img_chao, (416, 390))
  113.  
  114.     # Adiciona o movimento
  115.     if not correndo:
  116.         pers_x += mov * tempo
  117.     else:
  118.         pers_x += mov * tempo * 3
  119.  
  120.     # Recorta a animação atual do boneco
  121.     personagem = boneco.subsurface(Rect(64*acao,0,64,64))
  122.  
  123.     # Para esquerda ou para direita?
  124.     if mov < 0:
  125.         indo_para = "esquerda"
  126.     elif mov > 0:
  127.         indo_para = "direita"
  128.  
  129.     if indo_para == "esquerda":
  130.         personagem = pygame.transform.flip(personagem, True, False)
  131.  
  132.     # Imprime o personagem na tela
  133.     tela.blit(personagem,(pers_x,370))
  134.  
  135.     pygame.display.flip()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement