每次点击的Pygame得分

时间:2017-09-11 07:51:11

标签: pygame click scoreloop

我想创建一个程序,每当我按下鼠标按钮时,它的分数将增加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()

1 个答案:

答案 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