Untitled
unknown
plain_text
a year ago
2.9 kB
17
Indexable
from pygame import *
'''Необхідні класи'''
from random import randint
# клас-батько для спрайтів
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.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):
direction = "left"
def update(self):
if self.rect.x <= randint(0, win_width - 85):
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
window = display.set_mode((win_width, win_height))
display.set_caption("Maze")
background = transform.scale(image.load(
"background.jpg"), (win_width, win_height))
# Персонажі гри:
player = Player('hero.png', 5, win_height - 80, 4)
enemy = Enemy ("cyborg.png", randint(85, win_width- 85), randint(0, win_height- 85), 10)
final = GameSprite('treasure.png', win_width - 120, win_height - 80, 0)
game = True
finish = False
clock = time.Clock()
FPS = 60
# музика
mixer.init()
mixer.music.load('jungles.ogg')
#mixer.music.play()
while game:
for e in event.get():
if e.type == QUIT:
game = False
if finish != True:
window.blit(background, (0, 0))
player.update()
enemy.update()
player.reset()
enemy.reset()
final.reset()
display.update()
clock.tick(FPS)
Editor is loading...
Leave a Comment