我正在继续使用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()
任何帮助都非常感谢,甚至可以解释我做错了什么。
答案 0 :(得分:2)
while True:
countMouseClick = 0
# ... rest ...
这样你就可以在每个循环中重置值。您必须在while
countMouseClick = 0
while True:
# ... rest ...