Python Pygame-未检测到鼠标单击

Python Pygame-未检测到鼠标单击,python,python-3.x,pygame,Python,Python 3.x,Pygame,我正在学习Pygame制作带有Python的游戏。然而,我遇到了一个问题。我试图检测播放器当前单击屏幕的时间,但我的代码不起作用。是我的代码真的出错了,还是我正在使用的只是在线Pygame编译器 import pygame pygame.init() screen = pygame.display.set_mode((800, 800)) while True: pygame.display.update() mouse = pygame.mouse.get_pressed()

我正在学习Pygame制作带有Python的游戏。然而,我遇到了一个问题。我试图检测播放器当前单击屏幕的时间,但我的代码不起作用。是我的代码真的出错了,还是我正在使用的只是在线Pygame编译器

import pygame

pygame.init()
screen = pygame.display.set_mode((800, 800))

while True:
  pygame.display.update()
  mouse = pygame.mouse.get_pressed()
  if mouse:
    print("You are clicking")
  else:
    print("You released")
当我运行这段代码时,输出控制台在一秒钟内发送了数千次“You is click”文本。即使我没有点击屏幕,它仍然会这样说。即使我的鼠标没有在屏幕上方。还是一样的文本。一遍又一遍。Pygame是否正确执行我的程序


为了学习Pygame,我使用了开发者的官方文档。这是一种过时的学习方式吗?这就是我的代码继续运行错误的原因吗?

在处理事件时,将计算返回的坐标。您需要通过或来处理事件

见:

对于游戏的每一帧,您都需要对事件队列进行某种调用。这确保了您的程序可以在内部与操作系统的其余部分交互

返回表示所有鼠标按钮状态的布尔值序列。因此,您必须评估按钮是否被按下(
any(buttons)
),或者订阅是否按下了特殊按钮(例如
buttons[0]

例如:

导入pygame
pygame.init()
screen=pygame.display.set_模式((800800))
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
按钮=pygame.mouse.get_pressed()
#如果按钮[0]:#用于鼠标左键
如果有(按钮):#对于任何鼠标按钮
打印(“您正在单击”)
其他:
打印(“您发布”)
pygame.display.update()

如果您只想检测鼠标按钮何时分别按下或松开,则必须实现
MOUSEBUTTONDOWN
MOUSEBUTTONUP
(请参阅模块):

导入pygame
pygame.init()
screen=pygame.display.set_模式((800800))
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.MOUSEBUTTONDOWN:
打印(“您正在单击”,事件按钮)
如果event.type==pygame.MOUSEBUTTONUP:
打印(“您已发布”,事件按钮)
pygame.display.update()


pygame.mouse.get_pressed()
返回按钮的当前状态时,
MOUSEBUTTONDOWN
MOUSEBUTTONUP
仅在按下按钮时出现。

pygame.mouse.get_pressed>函数返回一个包含true或false的列表,因此,对于单击,您应该使用-

import pygame

pygame.init()
screen = pygame.display.set_mode((800, 800))
run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
  pygame.display.update()
  mouse = pygame.mouse.get_pressed()
  if mouse[0]:
    print("You are clicking")
  else:
    print("You released")

那没有道理。为什么你可以运行我的代码,它的工作非常好。。。。但是当我运行它时,会出现错误吗?你改变密码了吗?调整任何东西?除非条件首先尝试打印(鼠标)。当我打印(鼠标)时,它工作得非常好,可以打印坐标。没关系,@Rabbid76解决了我的问题。非常聪明的家伙。@Binji检查列表中的任何元素是否为真。它使用任何it检测左键单击和右键单击,以检查我的answer@YeshwinVermaTheProgrammer问题:“我试图检测玩家当前单击屏幕的时间”-提问者没有指定哪个按钮,因此
any
是正确的解决方案。请参阅:“对于游戏的每一帧,您都需要对事件队列进行某种调用。这确保了您的程序可以在内部与操作系统的其余部分交互。”。如果没有事件处理,`pygame.mouse.get_pressed()`将不会返回任何内容。