ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

7.Pygame Time时间控制

2022-07-31 17:04:03  阅读:274  来源: 互联网

标签:控制 游戏 get Time 毫秒 pygame FPS time Pygame


pygame.time 时间控制模块,是 Pygame 中使用频率较高的模块,其主要功能是管理时间和游戏帧数率(即 FPS)。

时间在游戏开发中承担着非常重要的作用,比如释放某个技能所消耗的时间,或者播放动画、声音的持续时间,这些都需要时间来管理。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() 创建一个时钟对象来帮我们确定游戏要以多大的帧数运行


下面看一组简单的示例:

  1. import pygame
  2.  
  3. pygame.init()
  4. screen = pygame.display.set_mode((500,500))
  5. pygame.display.set_caption('c语言中文网')
  6. # 获取以毫秒为单位的时间
  7. t = pygame.time.get_ticks() #该时间指的从pygame初始化后开始计算,到调用该函数为止
  8. t1 =pygame.time.wait(3000) #暂停游戏3000毫秒
  9. print(t1)
  10. #暂停t1时间后,加载图片
  11. image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
  12. while True:
  13. for event in pygame.event.get():
  14. if event.type == pygame.QUIT:
  15. exit()
  16. screen.blit(image_surface,(0,0))
  17. pygame.display.update()

上述程序在暂停 3 秒后才会加载图片,运行结果如下:

pygame程序
图1:程序运行结果

2) 设置游戏FPS

若想设置游戏的帧数率(FPS)可以通过 Clock() 方法来实现,该对象提供了以下常用方法:

方法 说明
pygame.time.Clock.tick() 更新clock对象
pygame.time.Clock.get_time() 获取上一个tick中的时间
pygame.time.Clock.get_fps() 计算clock对象的帧率


下面看一组简单的应用示例:

  1. import pygame
  2.  
  3. pygame.init()
  4. screen = pygame.display.set_mode((500,300))
  5. pygame.display.set_caption('c语言中文网')
  6. # 获取以毫秒为单位的时间
  7. t = pygame.time.get_ticks() #该时间指的从pygame初始化后开始计算,到调用该函数为止
  8. t1 =pygame.time.delay(3000) #暂停游戏3000毫秒
  9. print(t1)
  10. #暂停t1时间后,加载图片
  11. image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
  12. #创建时钟对象(控制游戏的FPS)
  13. clock = pygame.time.Clock()
  14. while True:
  15.  
  16. #通过时钟对象,指定循环频率,每秒循环60次
  17. clock.tick(60)
  18. for event in pygame.event.get():
  19. if event.type == pygame.QUIT:
  20. exit()
  21. screen.blit(image_surface,(0,0))
  22. pygame.display.update()

注意:FPS(游戏帧率)影响效果只有在动态图时才能显现出来,不过无论静态图还是动态图,它们的使用规则都是一样的。

标签:控制,游戏,get,Time,毫秒,pygame,FPS,time,Pygame
来源: https://www.cnblogs.com/55zjc/p/16537491.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有