PyGame碰撞?

pix*_*eer 6 python pygame collision

如何在PyGame中找到角色和图像之间的冲突?我从一个图像中抽取了一个玩家,并从瓷砖上绘制了墙壁,那么我如何才能发现这些碰撞呢?

Cas*_*all 13

如果使用pygame Rect类来表示对象的边界,则可以使用Rect.colliderect函数检测两个是否发生冲突.例如:

import pygame

a = pygame.Rect((1, 1), (2, 2))
b = pygame.Rect((0, 0), (2, 2))
c = pygame.Rect((0, 0), (1, 1))
a.colliderect(b)
# 1
a.colliderect(c)
# 0
b.colliderect(c)
# 1
Run Code Online (Sandbox Code Playgroud)

a与b碰撞,b与c碰撞,但a不与c碰撞.请注意,共享边界的rects不会发生冲突.

Pygame还支持让你使用Rect作为图像的位置,当你想要将它"blit"到屏幕上时.