Check Collision Between A Image And A Line
I check collision: offset = (x0 - x1, y0 - y1) result = player1.mask.overlap(player2, offset) Its working between two images. But if I want to check collision between a image and
Solution 1:
You missed to create a surface with per pixel alpha by .convert_alpha()
, before creating the mask from the "line" Surface:
line_rect = pygame.draw.line(gameDisplay, colors.GREEN, [100, 100], [200, 200], 5)
line_surf = gameDisplay.subsurface(line_rect)
line_mask = pygame.mask.from_surface(line_surf.convert_alpha())
x0, y0 = line_rect.topleft
x1, y1 = player1.rect.topleft
offset = (x0 - x1, y0 - y1)
if player1.mask.overlap(line_mask, offset):
print("hit : ", count)
See the example: repl.it/@Rabbid76/PyGame-PyGame-SurfaceLineMaskIntersect-1
Post a Comment for "Check Collision Between A Image And A Line"