Как я могу сделать два изображения сталкиваются друг с другом в Pygame? - PullRequest
0 голосов
/ 16 апреля 2020

Мне нужен код, который всякий раз, когда игрок и фрукт сталкиваются ... просто заканчивает игру.

игрок:

playerImg = pygame.image.load('trash.png')    
x = 370    
y = 480    

def player(x, y):    
    screen.blit(playerImg, (x, y))

fruit1:

fruitImg = pygame.image.load('001-apple.png')    
fruit_x = random.randrange(0, width)    
fruit_y = -600    
fruit_speed = 5    
fruit_width = 100    
fruit_height = 100

def fruit(fruit_x, fruit_y, fruit_width, fruit_height):    
    screen.blit(fruitImg, (fruit_x, fruit_y, fruit_width, fruit_height))

1 Ответ

2 голосов
/ 16 апреля 2020

Использование pygame.Rect объектов и .colliderect():

fruit_rect = fruitImg.get_rect(topleft = (fruit_x, fruit_y))
player_rect = playerImg.get_rect(topleft = (x, y))
if player_rect.colliderect(fruit_rect):
    print("collide")

colliderect возвращает True, если 2 прямоугольника пересекаются.
get_rect() возвращает pygame.Rect, который содержит размер pygame.Surface. Этот прямоугольник всегда будет начинаться с (0, 0). Расположение прямоугольника можно задать ключевым аргументом (например, topleft = (x, y))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...