Используйте pygame.draw.lines
, чтобы связать список точек линией.
Добавить текущую позицию мыши в список, если кнопка мыши отпущена:
if event.type == pygame.MOUSEBUTTONUP:
points.append(event.pos)
Нарисуйте список точек, если в списке более 1 точки:
if len(points) > 1:
pygame.draw.lines(screen, (255, 255, 255), False, points, width)
Нарисуйте «резинку» от последней точки в списке до текущей позиции мыши:
if len(points):
pygame.draw.line(screen, (255, 255, 255), points[-1], pygame.mouse.get_pos(), width)
См. Простой пример:
run = True
width = 3
points = []
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.MOUSEBUTTONUP:
points.append(event.pos)
screen.fill(0)
if len(points) > 1:
pygame.draw.lines(screen, (255, 255, 255), False, points, width)
if len(points):
pygame.draw.line(screen, (255, 255, 255), points[-1], pygame.mouse.get_pos(), width)
pygame.display.flip()