
Import pygame import 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()очень срочно программа не работает. Нужно что бы игра заработала.

Ответы на вопрос

Я думаю это должно заработать я исправил некоторые ваши ошибки в коде:
import pygame
import random
pygame.init()
WIDTH = 800
HEIGHT = 600
back = (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 = name
self.rect = pygame.Rect(x, y, width,height)
self.fill_color = back
if color:
self.fill_color = color
def color(self, new_color):
self.fill_color = new_color
def 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=color
def color(self, new_color):
self.fill_color = new_color
def 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 = 50
player_x=WIDTH/2-player_size/2
player_y = HEIGHT-player_size
player_speed=5
monster_size=50
monster_x=random.randint(0,WIDTH-monster_size)
monster_y=-monster_size
monster_speed=2
score=0
clock = pygame.time.Clock()
game_over = False
font = pygame.font.Font(None, 36)
def show_score(x, y):
score_text=font.render(f"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.5
if distance < player_size/2+monster_size/2:
return True
return False
player = 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 = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player_x-=player_speed
elif event.key == pygame.K_RIGHT:
player_x+=player_speed
monster_y+= monster_speed
if collision(player_x, player_y, monster_x



It looks like there are a few issues in your code. Let's go through them:
There is a syntax error in the
show_score
function. The closing square bracket]
should be a curly brace{
. Replace"Score: [score}"
with"Score: {score}"
.In the
collision
function, there is a typo in the lineif distance < player_size/2+monster_size/2:
. Replace<
with<
.The indentation of the collision check and score incrementation seems incorrect. Make sure they are indented properly under the
if event.type == pygame.KEYDOWN:
condition.
Here's the corrected code:
python# ... (previous code)
def show_score(x, y):
score_text = font.render(f"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.5
if distance < player_size / 2 + monster_size / 2:
return True
return False
# ... (remaining code)
After making these changes, your program should work better. If there are still issues or errors, please let me know, and I'll be happy to help you further.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili