根據:玩蛇系列之Pygame教程(四)-- 繪制文字 中我們可以知道如何繪制文字在屏幕上,這里我們就應用一下這個知識,再結合自定義事件,實現一個簡單的計時器
如何計時?
這里我采用每隔一秒發送一個自定義的事件來實現計時
自定義事件:
# 自定義計時事件
COUNT = pygame.USEREVENT +1
# 每隔1秒發送一次自定義事件
pygame.time.set_timer(COUNT,1000)
定義好后就可以在程序主循環中獲得所有的事件,并判斷:
for event in pygame.event.get():# 獲取事件
if event.type == QUIT:# 判斷事件是否為退出事件
pygame.quit()# 退出pygame
sys.exit()# 退出系統
if event.type == COUNT:# 判斷事件是否為計時事件
counts=counts+1
countstext=str(counts)
showText(fontbigObj,countstext,200,350)
如何獲得系統時間?
首先導入time模塊,然后調用time.ctime()就可以獲得當前系統的時間
導入time模塊
import pygame, sys ,time# 聲明 導入需要的模塊
獲得系統當前的時間
now = time.ctime()# 獲得系統當前時間
clock = now[11:19]# 格式化形式
完整代碼:
# -*- coding: UTF-8 -*-
'''
Created on 2016年11月22日
@author: 小峰峰
'''
import pygame, sys ,time# 聲明 導入需要的模塊
from pygame.locals import *
pygame.init()# 初始化pygame
DISPLAYSURF = pygame.display.set_mode((400,600))# 設置窗口的大小,單位為像素
pygame.display.set_caption('Clock')# 設置窗口的標題
# 定義幾個顏色
WHITE = (255, 255, 255)
GREEN = ( 0, 255, 0)
BLUE = ( 0, 0, 128)
DISPLAYSURF.fill(WHITE)# 設置背景
# 初始化計時器
counts=0
# 自定義計時事件
COUNT = pygame.USEREVENT +1
# 每隔1秒發送一次自定義事件
pygame.time.set_timer(COUNT,1000)
#抽象出一個方法用來繪制Text在屏幕上
def showText(fontObj,text,x,y):
textSurfaceObj = fontObj.render(text, True, GREEN, WHITE)# 配置要顯示的文字
textRectObj = textSurfaceObj.get_rect()# 獲得要顯示的對象的rect
textRectObj.center = (x, y)# 設置顯示對象的坐標
DISPLAYSURF.blit(textSurfaceObj, textRectObj)# 繪制字體
fontbigObj = pygame.font.Font('PAPYRUS.ttf', 48)# 通過字體文件獲得字體對象
fontminObj = pygame.font.Font('PAPYRUS.ttf', 24)# 通過字體文件獲得字體對象
showText(fontminObj,"Time:",100,100)
showText(fontminObj,"Count:",100,300)
while True: # 程序主循環
now = time.ctime()# 獲得系統當前時間
clock = now[11:19]# 格式化形式
showText(fontbigObj,clock,200,150)
for event in pygame.event.get():# 獲取事件
if event.type == QUIT:# 判斷事件是否為退出事件
pygame.quit()# 退出pygame
sys.exit()# 退出系統
if event.type == COUNT:# 判斷事件是否為計時事件
counts=counts+1
countstext=str(counts)
showText(fontbigObj,countstext,200,350)
pygame.display.update()# 繪制屏幕內容
運行結果: