pygame时序模块time的具体使用
目录
- 简介
- 时钟对象
- 平抛运动
简介
之前在更新图形的时候,为了调控死循环的响应时间,用到了time.s编程客栈leep。而实际上,我们并不需要额外导入其他包,pygame就提供了time模块,用以调控游android戏的帧率。
time中主要有下面几种
| 方法和类 | |
|---|---|
| get_ticks | 获取pygame初始化后的毫秒数 |
| wait(millisecond编程s)delay(milliseconds) | 延时,前者更轻量,后者更精确 |
| set_timer | 重复创建事件队列中的事件 |
| Clock | 时钟对象 |
时钟对象
Clock是time模块中的时钟类,封装了下列方法
| 方法 | |
|---|---|
| tick, tick_busy_loop | 更新时钟,前者更轻量,后者更精确 |
| get_time, get_rawtime | 上一次tick的毫秒数 |
| get_fps | 计算时钟帧率 |
下面简单测试一下时钟类
import pygame as pg c = pg.time.Clock() c.tick() # 5 c.tick_busy_loop() # 1 c.get_time() # 1
平抛运动
接下来,用time模块将平抛运动重做一次,代码如下
import pygawww.devze.comme as pg
pg.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()
break
pg.time.delay(20)
rect = recthttp://www.devze.com.move(speed)
if rect.right>width:
speed = [10, 0]
rect = ball.get_rect()
if rect.bottom>height:
speed[1] = -speed[1]
speed[1] += 1
th += 5
screen.fill("black")
screen.blit(pg.transform.rotate(ball, th), rect)
pg.display.flip()
效果如下

到此这篇关于pygame时序模块time的具体使用的文章就介绍到这了,更多相关pygame time内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
加载中,请稍侯......
精彩评论