ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

pygame时序模块time

pygame时序模块time

文章目录

    • 简介
    • 时钟对象
    • 平抛运动

pygame系列:初步💎加载图像💎图像变换💎直线绘制

简介

之前在更新图形的时候,为了调控死循环的响应时间,用到了time.sleep。而实际上,我们并不需要额外导入其他包,pygame就提供了time模块,用以调控游戏的帧率。

time中主要有下面几种

方法和类
get_ticks获取pygame初始化后的毫秒数
wait(milliseconds)
delay(milliseconds)
延时,前者更轻量,后者更精确
set_timer重复创建事件队列中的事件
Clock时钟对象

时钟对象

Clock是time模块中的时钟类,封装了下列方法

方法
tick, tick_busy_loop更新时钟,前者更轻量,后者更精确
get_time, get_rawtime上一次tick的毫秒数
get_fps计算时钟帧率

下面简单测试一下时钟类

import pygame as pgc = pg.time.Clock()
c.tick()    # 5
c.tick_busy_loop()  # 1
c.get_time()    # 1

平抛运动

接下来,用time模块将平抛运动重做一次,代码如下

import pygame as pgpg.init()size = width, height = 640, 320
speed = [10, 0]screen = pg.display.set_mode(size)ball = pg.image.load("intro_ball.gif")
rect = ball.get_rect()th = 0
while True:if pg.QUIT in [e.type for e in pg.event.get()]:pg.quit()breakpg.time.delay(20)rect = rect.move(speed)if rect.right>width:speed = [10, 0]rect = ball.get_rect()if rect.bottom>height:speed[1] = -speed[1]speed[1] += 1th += 5screen.fill("black")screen.blit(pg.transform.rotate(ball, th), rect)pg.display.flip()

效果如下

图

返回列表