python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pygame time

pygame时序模块time的具体使用

作者:微小冷

Pygame Time模块能够帮助你更好地控制帧率和时间,从而增强游戏的可玩性,本文主要介绍了pygame时序模块time的具体使用,具有一定的参考价值,感兴趣的可以了解一下

简介

之前在更新图形的时候,为了调控死循环的响应时间,用到了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 pg

c = pg.time.Clock()
c.tick()    # 5
c.tick_busy_loop()  # 1
c.get_time()    # 1

平抛运动

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

import pygame 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 = rect.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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文