Pygame Time時(shí)間控制的具體使用詳解
pygame.time 時(shí)間控制模塊,是 Pygame 中使用頻率較高的模塊,其主要功能是管理時(shí)間和游戲幀數(shù)率(即 FPS)。
時(shí)間在游戲開發(fā)中承擔(dān)著非常重要的作用,比如釋放某個(gè)技能所消耗的時(shí)間,或者播放動(dòng)畫、聲音的持續(xù)時(shí)間,這些都需要時(shí)間來管理。time 模塊另外一個(gè)重要作用是控制游戲幀數(shù)率(即 FPS),它是評(píng)價(jià)游戲畫面是否流暢的關(guān)鍵指標(biāo)。在一般情況下,計(jì)算機(jī)的 FPS 都能達(dá)到 60幀/s 的速度,這足夠我們使用,如果當(dāng)幀數(shù)小于 30 的時(shí)候,游戲畫面就會(huì)變得卡頓。
注意,在 Pygame 中時(shí)間以毫秒為單位(1秒=1000毫秒),這樣會(huì)使游戲的設(shè)計(jì)更為精細(xì)。
1) 游戲暫停
Pygame.time 模塊提供了以下常用方法,如下表所示:
方法 | 說明 |
---|---|
pygame.time.get_ticks() | 以毫秒為單位獲取時(shí)間 |
pygame.time.wait() | 使程序暫停一段時(shí)間 |
pygame.time.set_timer() | 創(chuàng)建一個(gè)定時(shí)器,即每隔一段時(shí)間,去執(zhí)行一些動(dòng)作 |
pygame.time.Clock() | 創(chuàng)建一個(gè)時(shí)鐘對(duì)象來幫我們確定游戲要以多大的幀數(shù)運(yùn)行 |
下面看一組簡(jiǎn)單的示例:
import pygame pygame.init() screen = pygame.display.set_mode((500,500)) pygame.display.set_caption('c語言中文網(wǎng)') # 獲取以毫秒為單位的時(shí)間 t = pygame.time.get_ticks() #該時(shí)間指的從pygame初始化后開始計(jì)算,到調(diào)用該函數(shù)為止 t1 =pygame.time.wait(3000) #暫停游戲3000毫秒 print(t1) #暫停t1時(shí)間后,加載圖片 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 秒后才會(huì)加載圖片
2) 設(shè)置游戲FPS
若想設(shè)置游戲的幀數(shù)率(FPS)可以通過 Clock() 方法來實(shí)現(xiàn),該對(duì)象提供了以下常用方法:
方法 | 說明 |
---|---|
pygame.time.Clock.tick() | 更新clock對(duì)象 |
pygame.time.Clock.get_time() | 獲取上一個(gè)tick中的時(shí)間 |
pygame.time.Clock.get_fps() | 計(jì)算clock對(duì)象的幀率 |
下面看一組簡(jiǎn)單的應(yīng)用示例:
import pygame pygame.init() screen = pygame.display.set_mode((500,300)) pygame.display.set_caption('c語言中文網(wǎng)') # 獲取以毫秒為單位的時(shí)間 t = pygame.time.get_ticks() #該時(shí)間指的從pygame初始化后開始計(jì)算,到調(diào)用該函數(shù)為止 t1 =pygame.time.delay(3000) #暫停游戲3000毫秒 print(t1) #暫停t1時(shí)間后,加載圖片 image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png") #創(chuàng)建時(shí)鐘對(duì)象(控制游戲的FPS) clock = pygame.time.Clock() while True: #通過時(shí)鐘對(duì)象,指定循環(huán)頻率,每秒循環(huán)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(游戲幀率)影響效果只有在動(dòng)態(tài)圖時(shí)才能顯現(xiàn)出來,不過無論靜態(tài)圖還是動(dòng)態(tài)圖,它們的使用規(guī)則都是一樣的。
到此這篇關(guān)于Pygame Time時(shí)間控制的具體使用詳解的文章就介紹到這了,更多相關(guān)Pygame Time時(shí)間控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用WMI檢測(cè)windows系統(tǒng)信息、硬盤信息、網(wǎng)卡信息的方法
這篇文章主要介紹了python使用WMI檢測(cè)windows系統(tǒng)信息、硬盤信息、網(wǎng)卡信息的方法,涉及Python針對(duì)系統(tǒng)信息的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05提升Python項(xiàng)目整潔度使用import?linter實(shí)例探究
在復(fù)雜的Python項(xiàng)目中,良好的代碼組織結(jié)構(gòu)是維護(hù)性和可讀性的關(guān)鍵,本文將深入研究?import-linter?工具,它是一個(gè)強(qiáng)大的靜態(tài)分析工具,旨在優(yōu)化項(xiàng)目的模塊導(dǎo)入,提高代碼質(zhì)量和可維護(hù)性2024-01-01python 基于空間相似度的K-means軌跡聚類的實(shí)現(xiàn)
這篇文章主要介紹了python 基于空間相似度的K-means軌跡聚類的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python學(xué)習(xí)筆記之調(diào)用eval函數(shù)出現(xiàn)invalid syntax錯(cuò)誤問題
python是一門多種用途的編程語言,時(shí)常扮演腳本語言的角色。一般來說,python可以定義為面向?qū)ο蟮哪_本語言,這個(gè)定義把面向?qū)ο蟮闹С趾兔嫦蚰_本語言的角色融合在一起。很多時(shí)候,人們常常喜歡用“腳本”和不是語言來描述python的代碼文件。2015-10-10Python程序員鮮為人知但你應(yīng)該知道的17個(gè)問題
這篇文章主要介紹了Python程序員代碼編寫時(shí)應(yīng)該避免的17個(gè)“坑”,也可以說成Python程序員代碼編寫時(shí)應(yīng)該避免的17個(gè)問題,需要的朋友可以參考下2014-06-06python項(xiàng)目下生成requirements.txt方法
這篇文章主要介紹了python項(xiàng)目下生成requirements.txt的方法,很多小伙伴不知道如何生成requirements.txt,本文就通過代碼示例給大家詳細(xì)介紹如何生成,,需要的朋友可以參考下2023-06-06使用Pytorch訓(xùn)練分類問題時(shí),分類準(zhǔn)確率的計(jì)算方式
這篇文章主要介紹了使用Pytorch訓(xùn)練分類問題時(shí),分類準(zhǔn)確率的計(jì)算方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09