Python pygame中的鼠标按钮事件
我在pygame中制作了一种类似cookie clicker的游戏,但是当我在分数中添加大量分数后单击鼠标时。我假设这是因为游戏循环,但是我想知道如何停止,并使每次点击的分数增加1,无论鼠标按钮被按住多长时间。使用两个变量,如Python pygame中的鼠标按钮事件,python,python-3.x,pygame,Python,Python 3.x,Pygame,我在pygame中制作了一种类似cookie clicker的游戏,但是当我在分数中添加大量分数后单击鼠标时。我假设这是因为游戏循环,但是我想知道如何停止,并使每次点击的分数增加1,无论鼠标按钮被按住多长时间。使用两个变量,如单击鼠标是否和单击鼠标是否 在游戏的初始化过程中(甚至在第一个循环之前),将False分配给它们两个 在游戏循环开始时,将鼠标单击是否的值分配给鼠标单击是否 然后,加载是否按下鼠标按钮以是否单击鼠标的信息变量 然后,如果单击的值与先前单击的值不同,则添加该点。 选项1:
单击鼠标是否
和单击鼠标是否
- 在游戏的初始化过程中(甚至在第一个循环之前),将
分配给它们两个False
- 在游戏循环开始时,将
的值分配给鼠标单击是否
鼠标单击是否
- 然后,加载是否按下鼠标按钮以
变量是否单击鼠标的信息
- 然后,如果单击的
值与先前单击的
值不同,则添加该点。
- 选项1:在
将立即增加分数(从您开始按下按钮的那一刻起)中添加点数如果之前单击过鼠标而未单击过鼠标:
- 选项2:在
将在稍后增加分数(松开按钮时)中添加分数如果未单击鼠标和以前单击过鼠标:
- 选项1:在
import pygame
pygame.init()
pygame.font.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode([320,240])
sys_font = pygame.font.SysFont(pygame.font.get_default_font(), 18)
pygame.display.set_caption("Clicker")
clicks = 0 # initialise the score counter
done = False
while not done:
#Events
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.MOUSEBUTTONDOWN:
clicks += 1
#Graphics
screen.fill(pygame.color.Color("white"))
score_txt = sys_font.render(f"Clicks: {clicks}", True, pygame.color.Color("blue"))
screen.blit(score_txt, (20, 220))
#Frame Change
pygame.display.update()
clock.tick(60)
pygame.quit()
您如何检测鼠标点击?您可能应该使用
pygame.event.get()
而不是。您应该显示您的代码。如果太长,则创建一个小的代表性示例。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现此问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建-