我正在尝试创建一个简单的程序,在这个程序中,用户可以用手指(在触摸屏上)在屏幕上移动形状。在
这是我目前为止的代码:
import pygame
def main():
pygame.init()
DISPLAY = pygame.display.set_mode((1000,500),0,32)
WHITE = (255,255,255)
blue = (0,0,255)
DISPLAY.fill(WHITE)
pygame.mouse.set_visible(False)
pygame.draw.rect(DISPLAY, blue,(480,200,50,250))
pygame.display.update()
pygame.mouse.set_pos(480, 200)
while True:
for event in pygame.event.get():
pos = pygame.mouse.get_pos()
pygame.draw.rect(DISPLAY, blue, (pos[0]-25,pos[1], 50, 250))
pygame.display. update()
DISPLAY.fill(WHITE)
main()
问题是当我触摸屏幕时,除非我移动手指,否则什么都不会发生。如果我打印事件,我可以看到没有事件列出,直到我开始移动我的手指,所以这可能是原因。在
我希望能够在屏幕上注册手指按下(我猜是一个事件),甚至在它开始移动之前,有没有用PyGame来做这个呢?在
谢谢。在
我已经做了一个游戏,利用电脑触摸屏和管理触摸相当好地处理两种类型的事件。一个是
pygame.MOUSEMOTION
,另一个是pygame.MOUSEBUTTONDOWN
。它们都包含属性event.pos
。问题是,至少在我的触摸屏(Lenovo)中,最初的触摸没有被pygame的事件处理程序注册。在您可以通过在触摸屏幕的同时将所有事件打印到终端来确认这一点。在松开或移动手指之前,我什么都得不到,但在释放时,我得到事件
pygame.MOUSEBUTTONDOWN
,后面紧跟着pygame.MOUSEBUTTONUP
。在我知道这并不能真正解决你的问题,但它也许能在某种程度上帮助你。否则,请查看Kivy。可能有解决办法。在
如果以后有人遇到这个问题,在PyGame2中有更好的触摸支持。您可以使用安装
(查看pygamegithub的最新版本)有三种新的事件类型。}。当触摸屏幕时,
pygame.FINGERDOWN
、pygame.FINGERUP
和{pygame.FINGERUP
事件注册触摸输入,而不是像pygame.MOUSEBUTTONDOWN
那样释放屏幕时相关问题 更多 >
编程相关推荐