【问题标题】:how to get mouse input in python and pygame如何在 python 和 pygame 中获取鼠标输入
【发布时间】:2015-08-11 10:57:31
【问题描述】:

我正在尝试在 pygame 中获取鼠标按钮输入,但它不起作用。我试过了

if pygame.mouse.get_pressed() == True:
    "do something"

,

if pygame.mouse.get_pressed() == (1,0,0):
    "do something"

,

if pygame.mouse.get_pressed()[0]:
    "do something"

...

我认为文档中的所有内容,但它什么都不做,if pygame.mouse.get_pressed() == (1,0,0): 以前总是有效。 (if mouse_pos == (PlayCoordsx, PlayCoordsy) and pygame.mouse.get_pressed() == (1, 0, 0):) 谁能告诉我我做错了什么?

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    首先,不建议使用 mouse.get_pressed()。而是使用 event.get() 并检查事件是什么。例如。

    while ... # This is your main loop
      # get all recent events
      events = pygame.event.get()
    
      # proceed events
      for event in events:
    
        # handle MOUSEBUTTONUP, ie. click release
        if event.type == pygame.MOUSEBUTTONUP:
          pos = pygame.mouse.get_pos()
    
          #Do your stuff
    

    【讨论】:

    • 不推荐使用 mouse.get_pressed():为什么?
    • 除非您绝对必须这样做,否则不会,因为您将需要开始使用标志和其他东西来补偿它将产生的大量触发器。而且您可能会错过很多印刷机,因为您不会有输入队列。只需在主循环中使用 get 事件,它更优雅且不易出错。甚至 get_pressed() 的 pygame 码头都说最好使用 event.get() 来代替
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多