1.时钟的刻度通过python的math函数cos,sin来获取,x,y,在通过pygame的字体对象进行书写
2.时钟怎么动,通过pygame的帧率实现动态的加载
3.秒,分在12点时会异常丢失
原因是因为i的取值在(1,61)之间,而获取系统时间的时候,只有(0,59)
应该在i=60的时候进行标识,从而在秒,分的时候可以识别出来
代码
import math
import random
import pygame
import time
from pygame.locals import *
def color():
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
return (r,g,b)
pygame.init()
window=pygame.display.set_mode((600,600))
pygame.display.set_caption("zengtian")
cc=color()
window.fill(cc)
R_X=300
R_Y=300
R=200
font = pygame.font.Font(None, 20)
def font(text,x,y,font=font,color=(255,255,255)):
te=font.render(text,True,color)
window.blit(te,(x,y))
fps=pygame.time.Clock()
while True:
wood = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
window.fill(cc)
font(wood,225,25)
r = random.randint(100, 255)
g = random.randint(100, 200)
b = random.randint(200, 255)
pygame.draw.circle(window, color(), (R_X, R_Y), R, 2)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
for i in range(1,61):
an=math.radians((360/60)*i-90)
x = math.cos(an) * R * 0.92
y = math.sin(an) * R * 0.92
if i % 5 == 0:
font(str(i // 5), R_X + x, R_Y + y)
j=i
if i==60:
j=0
if j == int(wood[-2:]):
pygame.draw.aaline(window, (b,g,r), [R_X, R_Y], [R_X + x * 0.95, R_Y + y * 0.95], 1)
if j == int(wood[-5:-3]):
pygame.draw.line(window, (g,r,b), [R_X, R_Y], [R_X + x * 0.85, R_Y + y * 0.85], 3)
if int(wood[-8:-6])<=12:
if i == int(wood[-8:-6])*5:
pygame.draw.line(window,(r,g,b) , [R_X, R_Y],[round((R_X + x * 0.5)), round((R_Y + y * 0.5))], 5)
if int(wood[-8:-6])>=12:
if i == (int(wood[-8:-6]) -12)* 5:
pygame.draw.line(window, (r, g, b), [R_X, R_Y], [round((R_X + x * 0.5)), round((R_Y + y * 0.5))], 5)
fps.tick(1)
pygame.display.update()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75