向下循环鼠标按钮以绘制线条

2024-06-25 23:00:36 发布

您现在位置:Python中文网/ 问答频道 /正文

需要用鼠标按钮画线而不是点

当鼠标点击程序绘制点,我假设另一个循环是需要画线与鼠标按钮按下


while keep_going:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            keep_going = False
        if event.type == pygame.MOUSEBUTTONDOWN:
            spot = event.pos
            pygame.draw.circle(screen, GREEN, spot, radius)
            pygame.display.update()

我想在我的窗口里画线而不是点


Tags: 程序eventforiftype绘制鼠标按钮
1条回答
网友
1楼 · 发布于 2024-06-25 23:00:36

使用^{},通过线连接点列表

如果松开鼠标按钮,则将当前鼠标位置附加到列表:

if event.type == pygame.MOUSEBUTTONUP:
    points.append(event.pos)

如果列表中有多个点,请绘制点列表:

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()

相关问题 更多 >