Название в основном объясняет все это. Вот код для pygame.draw.rect:
stand = pygame.draw.rect(screen, green, (spike_x + 900, 400 - player_y + 476, 500, 500), border_radius=15)
Я хочу, чтобы stand
мог столкнуться с игроком. Игрок использует прямоугольник столкновения:
player_collision = player.get_rect(topleft=(player_x, player_y))
Я пытался использовать if player_collsion.collidepoint(stand):
, но это не работает. Когда я пытаюсь это сделать, он говорит TypeError: argument must contain two numbers
... попробуй if player_collsion.colliderect(stand):
, сравни collidepoint() и colliderect()
Вы должны использовать colliderect() , а не collidepoint(). collidepoint
используется для сравнения прямоугольника и точки, colliderect
используется для сравнения двух прямоугольников:
if player_collsion.collidepoint(stand):
if player_collsion.colliderect(stand):
Спасибо, это работает. Наверное, я недостаточно хорошо понял функцию collidepoint
....
Когда вы заглянули в документацию для
collidepoint
, какие аргументы они вам сказали? Можете ли вы как-то получить два числа из объектаstand
?