109 lines
2.8 KiB
Python
109 lines
2.8 KiB
Python
|
# -------------------------------------------------------------------------------------------
|
||
|
#
|
||
|
# Jatin Kumar Mandav
|
||
|
#
|
||
|
# Stopwatch Using Pygame
|
||
|
# Pause or Unpause : Space Bar or 'p'
|
||
|
# Reset : 'r'
|
||
|
# Quit : 'q'
|
||
|
#
|
||
|
# Website : https://jatinmandav.wordpress.com
|
||
|
# YouTube : https://www.youtube.com/channel/UCdpf6Lz3V357cIZomPwjuFQ?view_as=subscriber
|
||
|
#
|
||
|
# Facebook : facebook.com/jatinmandav
|
||
|
# Twitter : @jatinmandav
|
||
|
# Gmail : jatinmandav3@gmail.com
|
||
|
#
|
||
|
# -------------------------------------------------------------------------------------------
|
||
|
|
||
|
import pygame
|
||
|
import sys
|
||
|
import time
|
||
|
|
||
|
# Initializing of Pygame
|
||
|
pygame.init()
|
||
|
|
||
|
width = 200
|
||
|
height = 100
|
||
|
display = pygame.display.set_mode((width, height))
|
||
|
pygame.display.set_caption(" ")
|
||
|
clock = pygame.time.Clock()
|
||
|
|
||
|
dark_gray = (23, 32, 42)
|
||
|
white = (230, 230, 230)
|
||
|
|
||
|
seconds = 0
|
||
|
pause = False
|
||
|
|
||
|
# Font and Size
|
||
|
font = pygame.font.SysFont("Times New Roman", 24)
|
||
|
|
||
|
# Close the Window
|
||
|
def close():
|
||
|
pygame.quit()
|
||
|
sys.exit()
|
||
|
|
||
|
# Blit time and text to Pygame Window
|
||
|
def showTime():
|
||
|
hours = seconds/3600
|
||
|
minutes = (seconds/60)%60
|
||
|
sec = seconds%60
|
||
|
|
||
|
text = font.render("HH MM SS", True, white)
|
||
|
time = font.render(str(hours).zfill(2) + " " + str(minutes).zfill(2) + " " + str(sec).zfill(2), True, white)
|
||
|
display.blit(text, (10, 10))
|
||
|
display.blit(time, (13, 40))
|
||
|
|
||
|
# Pause the Stopwatch
|
||
|
def Pause():
|
||
|
while pause:
|
||
|
for event in pygame.event.get():
|
||
|
if event.type == pygame.QUIT:
|
||
|
close()
|
||
|
if event.type == pygame.KEYDOWN:
|
||
|
if event.key == pygame.K_SPACE or pygame.key == pygame.K_p:
|
||
|
stopWatch()
|
||
|
if event.key == pygame.K_r:
|
||
|
reset()
|
||
|
if event.key == pygame.K_q:
|
||
|
close()
|
||
|
|
||
|
pauseText = font.render("Paused!", True, white)
|
||
|
display.blit(pauseText, (10, height - 35))
|
||
|
|
||
|
pygame.display.update()
|
||
|
clock.tick(60)
|
||
|
|
||
|
# Reset StopWatch
|
||
|
def reset():
|
||
|
global seconds
|
||
|
seconds = 0
|
||
|
|
||
|
# StopWatch
|
||
|
def stopWatch():
|
||
|
tick = True
|
||
|
global seconds, pause
|
||
|
pause = False
|
||
|
while tick:
|
||
|
for event in pygame.event.get():
|
||
|
if event.type == pygame.QUIT:
|
||
|
close()
|
||
|
if event.type == pygame.KEYDOWN:
|
||
|
if event.key == pygame.K_SPACE or event.key == pygame.K_p:
|
||
|
pause = True
|
||
|
Pause()
|
||
|
if event.key == pygame.K_r:
|
||
|
reset()
|
||
|
if event.key == pygame.K_q:
|
||
|
close()
|
||
|
|
||
|
display.fill(dark_gray)
|
||
|
showTime()
|
||
|
seconds += 1
|
||
|
|
||
|
pygame.display.update()
|
||
|
clock.tick(1)
|
||
|
|
||
|
stopWatch()
|
||
|
|