我想创建一个程序,每当我按下鼠标按钮时,它的分数将增加1.
到目前为止,这是我的代码:
import pygame
pygame.init()
white = (255,255,255)
display = pygame.display.set_mode((800, 400))
def count():
exit = True
while exit:
mouseClick = pygame.mouse.get_pressed()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.MOUSEBUTTONDOWN:
global score
score = 0
if mouseClick[0] == 1:
score1=score+1
print (score1)
else:
print (score)
display.fill(white)
pygame.display.update()
count()
答案 0 :(得分:1)
问题在于您处理score
的方式:
if event.type == pygame.MOUSEBUTTONDOWN:
global score
score = 0
if mouseClick[0] == 1:
score1=score+1
print (score1)
else:
print (score)
在每次迭代时,如果检测到点击,则重置score
。
所以它总是等于0
。
摆脱那个score = 0
(以及那个global score
),并把它放在你的主循环之前:
score = 0
while exit:
...
现在,当您想要增加score
时,您不需要第二个变量。
相反,只需写下:
score += 1
相当于:
score = score + 1
另一方面,您的代码始终重新定义新变量score1
,并将其分配给score + 1
,等于1
。
所以你只有score
变量总是等于0
,而score1
变量总是等于1
。
处理所有这些问题的合理方法是:
score = 0
while exit:
...
if event.type == pygame.MOUSEBUTTONDOWN:
if mouseClick[0] == 1:
score += 1