我正在学习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")
当我运行此代码时,输出控制台在每秒几千次内向文本“您正在单击”发送垃圾邮件。即使我没有单击屏幕,它仍然会显示此信息。即使我的鼠标是不是 在
屏幕上。相同的文字。一遍又一遍。Pygame是否正确执行我的程序?
要学习Pygame,我使用的是开发人员提供的官方文档。https://www.pygame.org/docs/这是一种过时的学习方法,这就是为什么我的代码继续运行错误的原因吗?
pygame.mouse.get_pressed()
处理事件时将评估返回的坐标。您需要通过pygame.event.pump()
或处理事件pygame.event.get()
。
见pygame.event.get()
:
对于游戏的每一帧,您都需要对事件队列进行某种调用。这样可以确保您的程序可以与操作系统的其余部分进行内部交互。
pygame.mouse.get_pressed()
返回表示所有鼠标按钮状态的布尔值序列。您必须评估是否any
按了按钮(any(buttons)
)或订阅是否按了特殊按钮(例如buttons[0]
)。
例如:
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
buttons = pygame.mouse.get_pressed()
# if buttons[0]: # for the left mouse button
if any(buttons): # for any mouse button
print("You are clicking")
else:
print("You released")
pygame.display.update()
如果只想检测分别释放鼠标键的时间,则必须实现MOUSEBUTTONDOWN
and
MOUSEBUTTONUP
(请参阅pygame.event
模块):
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
if event.type == pygame.MOUSEBUTTONDOWN:
print("You are clicking", event.button)
if event.type == pygame.MOUSEBUTTONUP:
print("You released", event.button)
pygame.display.update()
当pygame.mouse.get_pressed()
返回按钮的当前状态时,
MOUSEBUTTONDOWN
和MOUSEBUTTONUP
仅在按下按钮时出现。
我想知道如何编写代码来检测鼠标点击精灵。例如:
我正在用python和pygame制作一个选择题问答游戏。我有圆,你想要的是当你点击圆时,它会改变宽度,使圆充满。但我不知道有哪种python函数可以做到这一点 以下是我目前的代码: 我想有这样的东西,如果鼠标悬停在圆圈和鼠标按钮向下和event.button==1然后改变宽度为0(填写) 提前谢谢! P. S.这不是我所有的代码
我在pygame中运行一个游戏,发现了一个漏洞。按照我的编码方式,如果鼠标出了窗口,游戏开始循环。当你得到,它将返回上次在窗口中检测到鼠标的值,但从其他方面看,没有鼠标离开窗口的指示。那么,有没有办法检查鼠标是否已经停止在pygame窗口上悬停,并离开了它?
使用https://altbeacon.github.io/android-beacon-library/samples.html中的代码试图检测IBeacon发射器,该发射器是iOS8,如下http://blog.passkit.com/configure-iphone-ibeacon-transmiter/,在哪一步出错了,我需要在区域中使用BeaconIdentifier作为mymonito
我有一个JTable,其中第3列和第4列使用JComboBox作为单元格编辑器。第3列指定类型,第4列指定子类型。第4列中可用的子类型列表取决于用户为类型选择的值。此外,用户可以编辑类型和子类型列表(这里的详细信息并不重要,只是类型和子类型列表在运行时都可以更改)。 因为子类型组合框的内容是动态的,所以我的目的是检测用户何时单击子类型单元格,并根据该行中类型的内容设置列表模型(设置可用的子类型项列
我想让我的应用程序检测鼠标点击在屏幕上的任何地方,而不必使应用程序聚焦。我想要它检测鼠标事件普遍,即使它最小化。到目前为止,我只能在swing GUI中检测鼠标事件。 Autohotkey可以随时检测鼠标点击并获得鼠标的位置,用Java怎么做到这一点呢?