• import pygameimport randompygame.init()WIDTH = 800HEIGHT = 600back = (0, 0, 0) WHITE = (255, 255, 255)RED = (255, 0, 0)GREEN =(0, 255, 0)screen = pygame.display.set_mode((WIDTH,HEIGHT))pygame.display.set_caption("Патискаф направляется к Титанику!")class Monster():def __init__(self,name,x=0,y=0,width=10,height=10, color=None):self.name = nameself.rect = pygame.Rect(x, y, width,height)self.fill_color = backif color:self.fill_color = colordef color(self, new_color):self.fill_color = new_colordef fill(self): pygame.draw.rect(screen, self.fill_color, self.rect)def collidepoint(self, x,y):return self.rect.collidepoint(x, y)def colliderect(self, rect):return self.rect.colliderect(rect)class Player():def __init__(self, name, x=0, y=0, width=10,height=10, color=None):self.name = name self.rect = pygame.Rect(x, y, width, height)self.fill_color = back if color:self.fill_color=colordef color(self, new_color):self.fill_color = new_colordef fill(self):pygame.draw.rect(screen, self.fill_color,self.rect)def collidepoint(self, x,y):return self.rect.collidepoint(x,y)def colliderect(self, rect):return self.rect.colliderect(rect)player_size = 50player_x=WIDTH/2-player_size/2player_y = HEIGHT-player_size player_speed=5monster_size=50 monster_x=random.randint(0,WIDTH-monster_size) monster_y=-monster_size monster_speed=2score=0clock = pygame.time.Clock()game_over = Falsefont = pygame.font.Font(None, 36) def show_score(x, y):score_text=font.render("Score: [score}", True, WHITE) screen.blit(score_text, (x, y))def collision(player_x, player_y, monster_x, monster_y):distance = ((player_x - monster_x)**2+ (player_y - monster_y)**2)**0.5if distance < player_size/2+monster_size/2:return Truereturn Falseplayer = Player ("Potiskaaf",player_x,player_y, player_size, player_size, WHITE) monster1 = Monster("Monster", monster_x, monster_y, monster_size, monster_size, RED) monster2 = Monster("Monster2", monster_x,monster_y, monster_size, monster_size, GREEN)while not game_over:for event in pygame.event.get():if event.type == pygame.QUIT: game_over = Trueif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT: player_x-=player_speedelif event.key == pygame.K_RIGHT:player_x+=player_speed monster_y+= monster_speedif collision(player_x, player_y, monster_x, monster_y): score+=1 monster_x = random.randint(0, WIDTH-monster_size)monster_y=-monster_sizescreen.fill(back)player.rect.topleft = (player_x, player_y) player.fill()monster1.rect.topleft = (monster_x,monster_y)monster1.fill()show_score(10, 10)pygame.display.update()clock.tick(30)pygame.quit()очень срочно программа не работает. Нужно ​что бы игра заработала.

Ответы 1

  • импортировать pygame

    импортировать случайный

    pygame.init()

    ШИРИНА = 800

    ВЫСОТА = 600

    назад = (0, 0, 0)

    БЕЛЫЙ = (255, 255, 255)

    КРАСНЫЙ = (255, 0, 0)

    ЗЕЛЕНЫЙ = (0, 255, 0)

    экран = pygame.display.set_mode((ШИРИНА,ВЫСОТА))

    pygame.display.set_caption("Патискаф направляется к Титанику!")

    класс Монстр():

    def __init__(self,name,x=0,y=0,width=10,height=10, color=None):

    self.name = имя

    self.rect = pygame.Rect(x, y, ширина, высота)

    self.fill_color = назад

    если цвет:

    self.fill_color = цвет

    цвет по определению (я, новый_цвет):

    self.fill_color = новый_цвет

    заполнение по умолчанию (самостоятельно):

    pygame.draw.rect(экран, self.fill_color, self.rect)

    определение точки столкновения (я, х, у):

    вернуть self.rect.collidepoint(x, y)

    def colliderect(self, rect):

    вернуть self.rect.colliderect(прямоугольник)

    класс Игрок():

    def __init__(я, имя, x=0, y=0, ширина=10, высота=10, цвет=нет):

    self.name = имя

    self.rect = pygame.Rect(x, y, ширина, высота)

    self.fill_color = назад

    если цвет:

    self.fill_color = цвет

    цвет по определению (я, новый_цвет):

    self.fill_color = новый_цвет

    заполнение по умолчанию (самостоятельно):

    pygame.draw.rect(экран, self.fill_color,self.rect)

    определение точки столкновения (я, х, у):

    вернуть self.rect.collidepoint(x,y)

    def colliderect(self, rect):

    вернуть self.rect.colliderect(прямоугольник)

    размер_игрока = 50

    player_x=ШИРИНА/2-player_size/2

    player_y = HEIGHT-player_size

    player_speed=5

    размер_монстра=50

    monster_x = random.randint (0, WIDTH-monster_size)

    monster_y=-размер_монстра

    monster_speed=2

    оценка=0

    часы = pygame.time.Clock()

    game_over = Ложь

    шрифт = pygame.font.Font (нет, 36)

    защита show_score (x, y):

    score_text=font.render("Оценка: [оценка}", True, WHITE)

    screen.blit(score_text, (x, y))

    защитная коллизия (player_x, player_y, monster_x, monster_y):

    расстояние = ((player_x - monster_x)**2+ (player_y - monster_y)**2)**0,5

    если расстояние < player_size/2+monster_size/2:

    вернуть Истина

    вернуть ложь

    player = Player ("Potiskaaf", player_x, player_y, player_size, player_size, БЕЛЫЙ)

    monster1 = Monster("Монстр", monster_x, monster_y, monster_size, monster_size, RED)

    монстр2 = Монстр("Монстр2", монстр_x,монстр_у, размер_монстра, размер_монстра, ЗЕЛЕНЫЙ)

    пока не game_over:

    для события в pygame.event.get():

    если event.type == pygame.ВЫЙТИ:

    game_over = Истина

    если event.type == pygame.KEYDOWN:

    если event.key == pygame.K_LEFT:

    player_x-=player_speed

    elif event.key == pygame.K_RIGHT:

    player_x+=player_speed

    monster_y+= скорость_монстра

    если столкновение (player_x, player_y, monster_x, monster_y):

    оценка+=1

    monster_x = random.randint(0, WIDTH-monster_size)

    monster_y=-размер_монстра

    screen.fill(назад)

    player.rect.topleft = (player_x, player_y)

    player.fill()

    monster1.rect.topleft = (monster_x,monster_y)

    монстр1.заполнить()

    show_score(10, 10)

    pygame.display.update()

    часы.тик(30)

    pygame.выйти()

  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years