Untitled

 avatar
unknown
plain_text
2 months ago
3.1 kB
11
Indexable
from pygame import *
'''Необхідні класи'''
 
#клас-батько для спрайтів
class GameSprite(sprite.Sprite):
    #конструктор класу
    def __init__(self, player_image, player_x, player_y, player_speed):
        super().__init__()
        #кожен спрайт повинен зберігати властивість image - зображення
        self.image = transform.scale(image.load(player_image), (65, 65))
        self.speed = player_speed
        #кожен спрайт повинен зберігати властивість rect - прямокутник, в який він вписаний
        self.rect = self.image.get_rect()
        self.rect.x = player_x
        self.rect.y = player_y
        
    def reset(self):
        window_1.blit(self.image, (self.rect.x, self.rect.y))

 

class Player(GameSprite):
    def update(self):
        keys = key.get_pressed()
        if keys[K_LEFT] and self.rect.x > 5:
            self.rect.x -= self.speed
        if keys[K_RIGHT] and self.rect.x < win_width - 80:
            self.rect.x += self.speed
        if keys[K_UP] and self.rect.y > 5:
            self.rect.y -= self.speed
        if keys[K_DOWN] and self.rect.y < win_height - 80:
            self.rect.y += self.speed
            
class Enemy(GameSprite):
   def update(self):
        if self.rect.x <= 470:
            self.direction = "right"
        if self.rect.x >= win_width - 85:
            self.direction = "left"

        if self.direction == "left":
            self.rect.x -= self.speed
        else:
            self.rect.x += self.speed


win_width = 700
win_height = 500
player = Player('hero.png', 5, win_height - 80, 4)

#Ігрова сцена:

window_1 = display.set_mode((win_width, win_height))
display.set_caption("Maze")
background = transform.scale(image.load("background.jpg"), (win_width, win_height))
 
#Персонажі гри:

class Wall(sprite.Sprite):
    def __init__(self, wall_width, wall_height, wall_x, wall_y, wall_color):
        super().__init__()
        self.image = Surface((wall_width, wall_height))
        self.image.fill(wall_color)
        self.rect = self.image.get_rect()
        self.rect.x = wall_x
        self.rect.y = wall_y

    def draw_wall(self):
        window_1.blit(self.image, (self.rect.x, self.rect.y))
        

monster = Enemy('cyborg.png', win_width - 80, 280, 2)
final = GameSprite('treasure.png', win_width - 120, win_height - 80, 0)
 
game = True
clock = time.Clock()
FPS = 60


#музика
mixer.init()
mixer.music.load('jungles.ogg')
mixer.music.play()
 
 



wall_1 = Wall(100,10,30,40,(213,10,30))
 

while game:
    for e in event.get():
        if e.type == QUIT:
            game = False

    
    window_1.blit(background,(0, 0))
    wall_1.draw_wall()
  
  
    player.reset()
    monster.reset()
    monster.update()
    player.update()
    display.update()
    
    clock.tick(FPS)

Editor is loading...
Leave a Comment