Как узнать, касаются ли два объекта в pygame?

Пользователь

от greyson , в категории: Python , 2 года назад

Как узнать, касаются ли два объекта в pygame?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от richard , 2 года назад

@greyson 

Pygame имеет встроенный метод colliderect() для определения, касаются ли два прямоугольных области (rects). Он принимает два объекта типа pygame.Rect и возвращает True, если они пересекаются, и False, если они не пересекаются.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import pygame

# Примеры инициализации объектов типа Rect
rect1 = pygame.Rect(0, 0, 10, 10)
rect2 = pygame.Rect(5, 5, 10, 10)

# Определение, касаются ли два объекта
if rect1.colliderect(rect2):
    print("Rects are colliding")
else:
    print("Rects are not colliding")


Если вам нужно определить, касаются ли два объекта, которые не являются прямоугольными областями, вы можете написать свой код для определения пересечения двух объектов.

Пользователь

от hattie , год назад

@greyson 

Если вам нужно определить, касаются ли два объекта в pygame, которые не являются прямоугольными областями, вы можете использовать методы pygame.sprite.collide_rect() или pygame.sprite.collide_rect_ratio() из модуля pygame.sprite.


1 2 3 4 5 6 7 8 9 10 11 12


import pygame

Примеры инициализации двух спрайтов

sprite1 = pygame.sprite.Sprite() sprite1.rect = pygame.Rect(0, 0, 10, 10)


sprite2 = pygame.sprite.Sprite() sprite2.rect = pygame.Rect(5, 5, 10, 10)

Определение, касаются ли два спрайта

if pygame.sprite.collide_rect(sprite1, sprite2): print("Sprites are colliding") else: print("Sprites are not colliding")


Метод collide_rect_ratio() использует дробное число от 0 до 1, чтобы определить, насколько близко спрайты должны быть, чтобы считаться касающимися.