Advertisement
shh_algo_PY

Frederick

Sep 24th, 2022
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.74 KB | None | 0 0
  1. from pygame import *
  2.  
  3. class GameSprite(sprite.Sprite):
  4.     def __init__(self, player_image, player_x, player_y, player_speed):
  5.         sprite.Sprite.__init__(self)
  6.    
  7.         self.image = transform.scale(image.load(player_image), (55, 55))
  8.         self.speed = player_speed
  9.    
  10.         self.rect = self.image.get_rect()
  11.         self.rect.x = player_x
  12.         self.rect.y = player_y
  13.    
  14.     def reset(self):
  15.         window.blit(self.image, (self.rect.x, self.rect.y))
  16.  
  17. class Player(GameSprite):
  18.     def update(self):
  19.         keys = key.get_pressed()
  20.         if keys[K_LEFT] and self.rect.x > 5:
  21.             self.rect.x -= self.speed
  22.         if keys[K_RIGHT] and self.rect.x < win_width - 80:
  23.             self.rect.x += self.speed
  24.         if keys[K_UP] and self.rect.y > 5:
  25.             self.rect.y -= self.speed
  26.         if keys[K_DOWN] and self.rect.y < win_height - 80:
  27.             self.rect.y += self.speed
  28.    
  29. class Enemy(GameSprite):
  30.     side = "left"
  31.    
  32.     def update(self):
  33.         if self.rect.x <= 410:
  34.             self.side = "right"
  35.         if self.rect.x >= win_width - 85:
  36.             self.side = "left"
  37.  
  38.         if self.side == "left":
  39.             self.rect.x -= self.speed
  40.         else:
  41.             self.rect.x += self.speed
  42.  
  43. class Wall(sprite.Sprite):
  44.     def __init__(
  45.         self, color_1, color_2, color_3, wall_x, wall_y, wall_width, wall_height
  46.         ):
  47.         sprite.Sprite.__init__(self)
  48.         self.color_1 = color_1
  49.         self.color_2 = color_2
  50.         self.color_3 = color_3
  51.         self.width = wall_width
  52.         self.height = wall_height
  53.    
  54.         self.image = Surface([self.width, self.height])
  55.         self.image.fill((color_1, color_2, color_3))
  56.    
  57.         self.rect = self.image.get_rect()
  58.         self.rect.x = wall_x
  59.         self.rect.y = wall_y
  60.    
  61.     def draw_wall(self):
  62.         draw.rect(
  63.             window, (self.color_1, self.color_2, self.color_3),
  64.             (self.rect.x, self.rect.y, self.width, self.height)
  65.             )
  66.  
  67. win_width = 700
  68. win_height = 500
  69. display.set_caption("Labyrinth")
  70. window = display.set_mode((win_width, win_height))
  71.  
  72. w1 = Wall(0, 0, 0, 100, 100, 300, 10)
  73. w2 = Wall(0, 0, 0, 410, 100, 10, 350)
  74.  
  75. hero = Player('hero.png', 5, win_height - 80, 5)
  76. monster = Enemy('cyborg.png', win_width - 80, 200, 5)
  77. final_sprite = GameSprite('pac-1.png', win_width - 85, win_height - 100, 0)
  78.  
  79. finish = False
  80.  
  81. run = True
  82.  
  83. while run:
  84.    
  85.     time.delay(50)
  86.    
  87.     for e in event.get():
  88.         if e.type == QUIT:
  89.             run = False
  90.  
  91.     if not finish:
  92.         window.fill((255, 255, 255))
  93.  
  94.         w1.draw_wall()
  95.         w2.draw_wall()
  96.  
  97.         hero.update()
  98.         monster.update()
  99.        
  100.         hero.reset()
  101.         monster.reset()
  102.         final_sprite.reset()
  103.  
  104.         # if touching
  105.         # game is over, so finish = True
  106.         # tell the program what picture to use. So, img = [insert image name]
  107.         # add background colour if using transparent picture!
  108.         # stick the image on using blit
  109.  
  110.         if sprite.collide_rect(hero, monster) or sprite.collide_rect(hero, w1) or sprite.collide_rect(hero, w2) or sprite.collide_rect(hero, w3) or sprite.collide_rect(hero, w4):
  111.             finish = True
  112.             img = image.load('game-over_1.png')
  113.             d = img.get_width() // img.get_height()
  114.             window.fill((255, 255, 255))
  115.             window.blit(transform.scale(img, (win_height * d, win_height)), (90, 0))
  116.    
  117.         if sprite.collide_rect(hero, final_sprite):
  118.             finish = True
  119.             img = image.load('thumb.jpg')
  120.             window.fill((255, 255, 255))
  121.             window.blit(transform.scale(img, (win_width, win_height)), (0, 0))
  122.  
  123.     display.update()
  124.  
  125.  
  126.  
  127.  
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement