开发者

pygame时序模块time的具体使用

开发者 https://www.devze.com 2023-12-05 09:17 出处:网络 作者: 微小冷
目录简介时钟对象平抛运动简介 之前在更新图形的时候,为了调控死循环的响应时间,用到了time.s编程客栈leep。而实际上,我们并不需要额外导入其他包,pygame就提供了time模块,用以调控游android戏的帧率。
目录
  • 简介
  • 时钟对象
  • 平抛运动

简介

之前在更新图形的时候,为了调控死循环的响应时间,用到了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的具体使用的文章就介绍到这了,更多相关pygame time内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)! 

0

精彩评论

暂无评论...
验证码 换一张
取 消