Pygame - 计算鼠标点击次数

开发者

我正在使用 python 和 pygames 继续我的进步。我正在尝试计算颜色变化时鼠标点击的次数。出于某种原因,它只计算 0 或 1,仅此而已。

if mouseClicked:
    #I want to count the number of clicks when the color changes
    if event.button == 1:
        countMouseClick = countMouseClick + 1
        #Change the window or screen display to a random integer mapped to the list.
        displayScreen.fill(otherColors[random.randint(0,3)])

这是我的代码:

#Mouse click color changer.
import pygame, random, sys
from pygame.locals import *
pygame.time.wait(1000) # 1000 ms = 1 sec.
#Initializing variables
#RGB    =     R     G      B
white   =   (255,   255,  255)
black   =   (0,     0,      0)
red     =   (255,   0,      0)
green   =   (0,     255,    0)
blue    =   (0,     0,    255)
otherColors = [black, red, green, blue]
bgcolor = otherColors[random.randint(0,3)]
width   =   640
height  =   480
fps     =   30

#Create a function and call it main().
def main():
    pygame.init()
    pygame.mixer.init()
    fpsClock = pygame.time.Clock()
    displayScreen = pygame.display.set_mode((width, height))
    pygame.display.set_caption('Mouse Click Color Changer')
    colorBoard = getRandomizedColor(otherColors)

    #Game Loop
    while True:
        #Process Input (Events)Step
        mouseClicked = False
        countMouseClick = 0
        for event in pygame.event.get():
            if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
                print(countMouseClick)
                pygame.quit()
                sys.exit()

            elif event.type == MOUSEBUTTONDOWN:
               mouseClicked = True

        #Update Step
        if mouseClicked:           
            if event.button == 1:
                countMouseClick = countMouseClick + 1              
                displayScreen.fill(otherColors[random.randint(0,3)])

        #Render (Draw) Step
        #Use cases for .update() & .flip() (https://www.pygame.org/docs/tut/newbieguide.html)
        pygame.display.update()   
        fpsClock.tick(fps)

def getRandomizedColor(changeColor):
    backgroundColor = []
    for color in otherColors:
        backgroundColor.append(color)
    changeColor = random.shuffle(backgroundColor)
    return changeColor

if __name__ == '__main__':
    main()

任何帮助都非常感谢,即使是对我做错了什么的解释。

简单的
while True:
    countMouseClick = 0
    # ... rest ...

这样您就可以在每个循环中重置值。你必须先设置它while

countMouseClick = 0
while True:
    # ... rest ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章