【问题标题】:How to use multi touch in a python paint program如何在 python 绘图程序中使用多点触控
【发布时间】:2015-01-22 04:48:10
【问题描述】:

所以我在 python 中构建了一个简单的绘图程序作为一个项目,使用 Pygame 它的工作原理是在按下鼠标并在表面上拖动它时基本上绘制一个圆圈流,它还有一些其他的小事情正在发生,但是我想问的是,有没有一种方法可以将您知道 mouse.get_pressed 的单个鼠标输入更改为一次多个鼠标输入或将多点触控输入更改为流式传输圆圈的点列表。

运行=真

运行时:

if buttons[0] == True:
    x,y = pygame.mouse.get_pos()

    if x> PA+AS:
        xShift = x - PA - AS
        pygame.draw.circle(pArea,DRAW_CLR,(xShift,y),BRUSHSIZE)
        pygame.display.flip()

所以这是我真正想要或多或少更改的代码部分。只是这样我就可以用我的触摸屏用两根手指而不是一个鼠标来画画了

【问题讨论】:

  • 你能说得更具体些吗
  • 我可以试试我猜所以运行= True while running: if buttons[0] == True: x,y = pygame.mouse.get_pos() if x> PA+AS: xShift = x - PA - AS pygame.draw.circle(pArea,DRAW_CLR,(xShift,y),BRUSHSIZE) pygame.display.flip() pArea 是我正在绘制的次表面,PA 和 AS 是相对于大小的整数表面。基本上不只是用一个输入(鼠标)绘图,我想知道是否有一种方法可以利用我的计算机触摸屏,一次用一个以上的手指绘图以及如何做到这一点。
  • 您可以使用您的代码更新您的问题。避免在 cmets 中添加。

标签: python


【解决方案1】:

如果你坚持在 PyGame 中这样做,你将会遇到困难。在 Python 中使用多点触控的最佳选择是 Kivy,几年前我使用它时它是一个非常可靠的框架,并且从那以后似乎只会变得更好。

切换到 Kivy 的缺点是 API 更复杂,但 this tutorial 似乎非常适合您尝试做的事情。

【讨论】:

  • 感谢您的建议。但是为了这个程序的目的,我最好在 PyGame 中找到一些方法来完成它。如果我用完了选项,我会尝试 kivy
  • pygame 的最后一个版本(我认为是第 2 版),支持多点触控。一个例子可以在这里找到patreon.com/posts/finger-painting-43786073?l=fr
【解决方案2】:

最新版本的 pygame 支持多点触控输入(我相信也支持手势)。

控制它的事件是pygame.FINGERDOWN.FINGERUP.FINGERMOTION。我的理解是它们像鼠标输入一样工作,但可以是多个并且可以通过event.finger_id 属性来区分。

可以在此处找到示例: https://www.patreon.com/posts/finger-painting-43786073?l=fr

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 2018-09-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2010-09-27
    相关资源
    最近更新 更多