Pygame Time时间控制详解
时间在游æˆ�å¼€å�‘䏿‰¿æ‹…ç�€é�žå¸¸é‡�è¦�的作用,比如释放æŸ�ä¸ªæŠ€èƒ½æ‰€æ¶ˆè€—çš„æ—¶é—´ï¼Œæˆ–è€…æ’æ”¾åŠ¨ç”»ã€�声音的æŒ�ç»æ—¶é—´ï¼Œè¿™äº›éƒ½éœ€è¦�æ—¶é—´æ�¥ç®¡ç�†ã€‚time 模å�—å�¦å¤–一个é‡�è¦�作用是控制游æˆ�帧数率(å�³ FPS),它是评价游æˆ�ç”»é�¢æ˜¯å�¦æµ�ç•…çš„å…³é”®æŒ‡æ ‡ã€‚åœ¨ä¸€èˆ¬æƒ…å†µä¸‹ï¼Œè®¡ç®—æœºçš„ FPS 都能达到 60帧/s 的速度,这足够我们使用,如果当帧数å°�于 30 的时候,游æˆ�ç”»é�¢å°±ä¼šå�˜å¾—å�¡é¡¿ã€‚
注æ„�,在 Pygame 䏿—¶é—´ä»¥æ¯«ç§’为å�•ä½�(1ç§’=1000æ¯«ç§’ï¼‰ï¼Œè¿™æ ·ä¼šä½¿æ¸¸æˆ�的设计更为精细。
1) 游�暂�
Pygame.time 模��供了以下常用方法,如下表所示:| 方法 | 说明 |
|---|---|
| pygame.time.get_ticks() | 以毫秒为��获�时间 |
| pygame.time.wait() | 使程�暂�一段时间 |
| pygame.time.set_timer() | 创建一个定时器,��隔一段时间,去执行一些动作 |
| pygame.time.Clock() | 创建一个时钟对象�帮我们确定游��以多大的帧数�行 |
下�看一组简�的示例:
import pygame
pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption('cè¯è¨€ä¸æ–‡ç½‘')
# 获�以毫秒为��的时间
t = pygame.time.get_ticks() #该时间指的从pygameåˆ�始化å�Žå¼€å§‹è®¡ç®—,到调用该函数为æ¢
t1 =pygame.time.wait(3000) #暂�游�3000毫秒
print(t1)
#æš‚å�œt1æ—¶é—´å�Žï¼ŒåŠ è½½å›¾ç‰‡
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
screen.blit(image_surface,(0,0))
pygame.display.update()
上述程åº�在暂å�œ 3 ç§’å�Žæ‰�ä¼šåŠ è½½å›¾ç‰‡ï¼Œè¿�行结果如下:
图1:程��行结果
2) 设置游�FPS
若想设置游�的帧数率(FPS)�以通过 Clock() 方法�实现,该对象�供了以下常用方法:| 方法 | 说明 |
|---|---|
| pygame.time.Clock.tick() | 更新clock对象 |
| pygame.time.Clock.get_time() | 获å�–上一个tickä¸çš„æ—¶é—´ |
| pygame.time.Clock.get_fps() | 计算clock对象的帧率 |
下�看一组简�的应用示例:
import pygame
pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption('cè¯è¨€ä¸æ–‡ç½‘')
# 获�以毫秒为��的时间
t = pygame.time.get_ticks() #该时间指的从pygameåˆ�始化å�Žå¼€å§‹è®¡ç®—,到调用该函数为æ¢
t1 =pygame.time.delay(3000) #暂�游�3000毫秒
print(t1)
#æš‚å�œt1æ—¶é—´å�Žï¼ŒåŠ è½½å›¾ç‰‡
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
#创建时钟对象(控制游�的FPS)
clock = pygame.time.Clock()
while True:
#通过时钟对象,指定循环频率,�秒循环60次
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
screen.blit(image_surface,(0,0))
pygame.display.update()
注æ„�:FPS(游æˆ�帧率)影å“�效果å�ªæœ‰åœ¨åЍæ€�图时æ‰�能显现出æ�¥ï¼Œä¸�è¿‡æ— è®ºé�™æ€�图还是动æ€�å›¾ï¼Œå®ƒä»¬çš„ä½¿ç”¨è§„åˆ™éƒ½æ˜¯ä¸€æ ·çš„ã€‚ 关注公众å�·ã€Œç«™é•¿ä¸¥é•¿ç”Ÿã€�,在手机上阅读所有教程,éš�æ—¶éš�地都能å¦ä¹ 。本公众å�·ç”±Cè¯è¨€ä¸æ–‡ç½‘站长亲自è¿�è�¥ï¼Œé•¿æœŸæ›´æ–°ï¼Œå�šæŒ�原创。

微信扫ç �关注公众å�·
优秀文ç«
- Goè¯è¨€å—符串截å�–(获å�–å—符串的æŸ�一段å—符)
- 指针å�˜é‡�çš„åˆ�始化,Cè¯è¨€æŒ‡é’ˆå�˜é‡�åˆ�始化详解
- Java�构方法
- �连通图��连通分�
- Goè¯è¨€ä½¿ç”¨buffer读å�–文件
- Java final修饰符详解
- CSS长度��汇总
- Python Pandas绘图教程(详解版)
- æ•°å¦è§£æž�Logistic回归算法
- Redis hash哈希散列(图解)