我在Pygame中画一个圆及其关联的矩形问题。当我绘制一个圆形,如pygame.draw.circle(曲面,颜色,中心,半径)时,它会创建一个矩形。我正在尝试使用pygame.collidepoint(event.pos)进行碰撞检测,其中event.pos是鼠标单击的位置。我的窗口大小为500x400,背景为黑色,绘制的圆圈为蓝色。当我在圆圈外面(在黑色背景中)点击时,通过将半径乘以int,圆圈的大小应该增大。相反,如果在圆圈内注册了点击,圆圈将通过将半径除以int来缩小。Pygame圈及其关联检测碰撞检测
我遇到的问题是rect实际上与圆的大小实际上不一样,所以当你点击背景的时候,当圆很大但没有完全填满窗时,它会缩小而不是变大。它在圆圈内注册一个点击)。在某个点上,与圆相关的矩形与窗口的大小相同,即使圆没有完全填充它,导致在内部注册点击。
我的问题是我如何才能使用撞击检测的圆而不是比实际圆更大的矩形?
下面是相关代码:
def handleMouseDown(self, position):
if self.circle.collidepoint(position):
self.radius = self.radius // 2
else:
self.radius = self.radius * 2
self.draw()
def draw(self):
self.surface.fill(self.black)
self.circle = pygame.draw.circle(self.surface, self.color, self.center, self.radius)
非常感谢你懒惰!我在代码中实现了这一点,它完美地工作。 – Zonyc