Advertisement
cookertron

Gabo_Duke

Dec 15th, 2021
725
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.42 KB | None | 0 0
  1.  
  2. import sys
  3. import pygame
  4. from pygame import *
  5.  
  6. height = 700
  7. width = 500
  8. pos_x = 100
  9. pos_y = 380
  10.  
  11. tela = pygame.display.set_mode((height, width))
  12. number_bullets = 3
  13.  
  14. class Jogo(pygame.sprite.Sprite):
  15.  
  16.     def __init__(self):
  17.         pygame.sprite.Sprite.__init__(self)
  18.         music_fundo = pygame.mixer.music.load('music/music-battle.mp3')
  19.         pygame.mixer.music.set_volume(0.4)
  20.         pygame.mixer.music.play(-1)
  21.  
  22.         self.pos_x = 100
  23.         self.pos_y = 380
  24.         self.position = 1
  25.         self.direction = False
  26.  
  27.         self.Sprites = []
  28.         self.Sprites.append(pygame.image.load('img/john/john01.png'))
  29.         self.Sprites.append(pygame.image.load('img/john/john02.png'))
  30.         self.Sprites.append(pygame.image.load('img/john/john03.png'))
  31.         self.Sprites.append(pygame.image.load('img/john/john04.png'))
  32.         self.image_atual = 0
  33.         self.jump_init = 380
  34.         self.image = self.Sprites[self.image_atual]
  35.         self.rect = self.image.get_rect()
  36.         self.rect.topleft = self.pos_x, self.pos_y
  37.         self.image = pygame.transform.scale(self.image, (80, 80))
  38.         self.mover = False
  39.         self.jump = False
  40.  
  41.  
  42.     def jumper(self):
  43.         self.jump = True
  44.  
  45.     def mover_frente(self):
  46.         self.mover = True
  47.         self.rect.x += 10
  48.         self.position = 1
  49.         self.direction = False
  50.         if self.rect.x >= 520:
  51.             self.rect.x = 520
  52.         if not key[pygame.K_RIGHT]:
  53.             self.mover = False
  54.  
  55.     def mover_traz(self):
  56.         self.mover = True
  57.         self.position = -1
  58.         self.direction = True
  59.         self.rect.x -= 10
  60.         if self.rect.x <= 10:
  61.             self.rect.x = 10
  62.  
  63.     def update(self):
  64.         #Jump
  65.         if self.jump == True:
  66.             self.rect.y -= 15
  67.             if self.rect.y <= 300:
  68.                  self.jump = False
  69.         else:
  70.             if self.rect.y < self.jump_init:
  71.                 self.rect.y += 10
  72.             else:
  73.                  self.rect.y = self.jump_init
  74.         #Animation
  75.         if self.mover == True:
  76.             self.image_atual = (self.image_atual + 0.5) % 4
  77.             self.image = self.Sprites[int(self.image_atual)]
  78.             self.image = pygame.transform.scale(self.image, (80, 80))
  79.         if not key[pygame.K_RIGHT]:
  80.             self.mover = False
  81.  
  82.     def draw(self):
  83.         if self.direction == True:
  84.           tela.blit(pygame.transform.flip(self.image,self.direction,False),self.rect)
  85.           self.kill()
  86.         if self.direction == False:
  87.           tela.blit(self.image,self.rect)
  88.           self.kill()
  89.  
  90.  
  91. class BackGround(pygame.sprite.Sprite):
  92.  
  93.     def __init__(self):
  94.         pygame.sprite.Sprite.__init__(self)
  95.         self.image = pygame.image.load('img/fundo01.png')
  96.         self.rect = self.image.get_rect()
  97.         self.rect.topleft = 0, 0
  98.  
  99.     def update(self):
  100.            #move map
  101.         if jogo.rect.x >= 520 and key[pygame.K_RIGHT]:
  102.             self.rect.x -= 10
  103.         if jogo.rect.x >= 10 and key[pygame.K_LEFT]:
  104.             self.rect.x += 10
  105.             # borda
  106.         if self.rect.x >= 0 and jogo.rect.x >= 10:
  107.             self.rect.x = 0
  108.  
  109.         if self.rect.x <= -1700 and jogo.rect.x >= 520:
  110.             self.rect.x = -1700
  111.  
  112.  
  113. class Bullet(pygame.sprite.Sprite):
  114.     def __init__(self):
  115.         pygame.sprite.Sprite.__init__(self)
  116.         self.position = 1
  117.         self.direction = -1 if jogo.direction else 1 # DIRECTION OF JOGO WHEN BULLET FIRED
  118.         self.number_bullets = 1
  119.         self.bullets = []
  120.         self.image = pygame.image.load('img/bullet.png')
  121.         self.rect = self.image.get_rect()
  122.         # bullet x: add to 53 to jogo position if jogo facing right (jogo.diredction = False) or add 0 to jogo position if jogo facing left
  123.         self.rect.topleft = jogo.rect.x if jogo.direction else jogo.rect.x + 53, jogo.rect.y + 32
  124.  
  125.  
  126.     def update(self):
  127.       self.rect.x += self.direction * 15
  128.       # if bullet goes out of right or left side of screen
  129.       if self.rect.x >= 700 or self.rect.x < 0:
  130.           self.kill()
  131.  
  132.  
  133.  
  134.  
  135. pygame.init()
  136.  
  137. Player_Groups = pygame.sprite.Group()
  138. jogo = Jogo()
  139. Player_Groups.add(jogo)
  140.  
  141. Bullet_Group = pygame.sprite.Group()
  142. bullet = Bullet()
  143. Bullet_Group.add(bullet)
  144.  
  145. Fundo_Group = pygame.sprite.Group()
  146. plano_fund = BackGround()
  147. Fundo_Group.add(plano_fund)
  148.  
  149. relogio = pygame.time.Clock()
  150.  
  151. while True:
  152.     relogio.tick(30)
  153.     relogio.get_time()
  154.     jump_sound = pygame.mixer.Sound('music/jump.flac')
  155.     tiro_sound = pygame.mixer.Sound('music/bullet.wav')
  156.     tela.fill((0, 0, 0))
  157.  
  158.  
  159.     for event in pygame.event.get():
  160.         if event.type == "Exit":
  161.             pygame.quit()
  162.             sys.exit()
  163.  
  164.     key = pygame.key.get_pressed()
  165.     if key[pygame.K_UP]:
  166.  
  167.         if jogo.rect.y != jogo.jump_init:
  168.             pass
  169.         else:
  170.          jogo.jumper()
  171.          jump_sound.play()
  172.  
  173.     if key[pygame.K_RIGHT]:
  174.         jogo.mover_frente()
  175.  
  176.     if key[pygame.K_LEFT]:
  177.         jogo.mover_traz()
  178.  
  179.     if key[pygame.K_q]:
  180.         pygame.quit()
  181.  
  182.     if key[pygame.K_SPACE]:
  183.         if len(Bullet_Group) < bullet.number_bullets:
  184.            Bullet_Group.add(Bullet())
  185.            tiro_sound.play()
  186.  
  187.     Fundo_Group.draw(tela)
  188.     Fundo_Group.update()
  189.  
  190.     Player_Groups.draw(tela)
  191.     Player_Groups.update()
  192.  
  193.     Bullet_Group.draw(tela)
  194.     Bullet_Group.update()
  195.  
  196.     jogo.draw()
  197.     jogo.update()
  198.  
  199.  
  200.     pygame.display.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement