I am continuing my progress with python and pygames. I am trying to count the number of mouse clicks when the color changes. For some reason, it is only counting 0 or 1, but nothing more.
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)])
Here's my code:
#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()
Any help is much appreciated even an explanation on what I am doing wrong.
while True:
countMouseClick = 0
# ... rest ...
This way you reset value in every loop. You have to set it before while
countMouseClick = 0
while True:
# ... rest ...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.