我在pygame中制作了一种类似于游戏的cookie点击器,但是当我点击鼠标时,一旦将大量点数添加到乐谱中。我认为这是因为游戏循环,但是我想知道如何停止,并且无论鼠标按钮按下多长时间,都要为每次点击添加1分。
答案 0 :(得分:2)
这是一个只增加鼠标按钮事件得分的示例:
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()
答案 1 :(得分:1)
使用is_mouse_clicked
和was_mouse_clicked_previously
等2个变量。
False
分配给它们。is_mouse_clicked
的值分配给was_mouse_clicked_previously
is_mouse_clicked
变量is_mouse_clicked
和was_mouse_clicked_previously
的值不同,请添加该点。
if is_mouse_clicked and not was_mouse_clicked_previously:
内添加点会立即提高分数(当您开始按下按钮时)if not is_mouse_clicked and was_mouse_clicked_previously:
内添加点会稍微提高分数(当您释放按钮时)