2017-02-18 33 views
0

我正在试图找出线条与我正在制作的打砖块中的一块砖相碰撞的点。我发现的最合乎逻辑的方法是从行中获取蒙版,并在返回点时使用collidemask。还有我这个尝试:如何从矩形/线条获得曲面

linemask = pygame.mask.from_surface(pygame.draw.line(screen, (0,0,0), bola.line[0], bola.line[1], 2)) 

它给了我这个错误:

TypeError: argument 1 must be pygame.Surface, not pygame.Rect

的意思是输入(在这种情况下,线)不能是一个矩形,但必须是一个表面。你知道如何从矩形或其他解决方案中获得表面吗?

回答

0

pygame.draw.line在Surface上绘制并返回Rect对象形式的受影响区域。

您绘制的曲面是screen。所以它是screen你想创建一个面具。或者,创建一个您使用pygame.draw的新Surface并从中创建一个遮罩。或者从屏幕的下表面创建一个蒙版(因此您不必从整个屏幕创建蒙版),如下所示:

rect = pygame.draw.line(screen, (0,0,0), bola.line[0], bola.line[1], 2) 
surface = screen.subsurface(rect) 
mask = pygame.mask.from_surface(surface)