#python #pygame
#python #pygame
Вопрос:
У меня есть два спрайта, которые могут обнаруживать столкновения, но я не уверен, как я могу заставить спрайт моего персонажа «стоять» на моей платформе. Кажется, ничего из того, что я делал, не работает.
Ответ №1:
Если у вас есть 2 pygame.Rect
объекта, вы можете переместить 2-й прямоугольник на 1-й прямоугольник, установив bottom
для 2-го прямоугольника top
значение 1-го прямоугольника. С виртуальными атрибутами pygame.Rect
это легко сделать:
rect2.bottom = rect1.top
Или, если у вас есть 2 pygame.sprite.Sprite
объекта:
sprite2.rect.bottom = sprote1.rect.top
Если у вас есть 2 pygame.Surface
объекта ( surf1
и surf2
) и 2 соответствующие позиции ( x1
, y1
) и ( x2
, y2
), используйте get_rect()
для создания pygame.Rect
объектов из поверхностей. Переместите 2-й прямоугольник на 1-й прямоугольник и обновите положение 2-го прямоугольника:
rect1 = surf1.get_rect(topleft = (x1, y1))
rect2 = surf2.get_rect(topleft = (x2, y2))
rect2.bottom = rect1.top
y2 = rect2.y