Pygame Time時間控制的具體使用詳解
pygame.time 時間控制模塊,是 Pygame 中使用頻率較高的模塊,其主要功能是管理時間和游戲幀數(shù)率(即 FPS)。
時間在游戲開發(fā)中承擔(dān)著非常重要的作用,比如釋放某個技能所消耗的時間,或者播放動畫、聲音的持續(xù)時間,這些都需要時間來管理。time 模塊另外一個重要作用是控制游戲幀數(shù)率(即 FPS),它是評價游戲畫面是否流暢的關(guān)鍵指標。在一般情況下,計算機的 FPS 都能達到 60幀/s 的速度,這足夠我們使用,如果當幀數(shù)小于 30 的時候,游戲畫面就會變得卡頓。
注意,在 Pygame 中時間以毫秒為單位(1秒=1000毫秒),這樣會使游戲的設(shè)計更為精細。
1) 游戲暫停
Pygame.time 模塊提供了以下常用方法,如下表所示:
| 方法 | 說明 |
|---|---|
| pygame.time.get_ticks() | 以毫秒為單位獲取時間 |
| pygame.time.wait() | 使程序暫停一段時間 |
| pygame.time.set_timer() | 創(chuàng)建一個定時器,即每隔一段時間,去執(zhí)行一些動作 |
| pygame.time.Clock() | 創(chuàng)建一個時鐘對象來幫我們確定游戲要以多大的幀數(shù)運行 |
下面看一組簡單的示例:
import pygame
pygame.init()
screen = pygame.display.set_mode((500,500))
pygame.display.set_caption('c語言中文網(wǎng)')
# 獲取以毫秒為單位的時間
t = pygame.time.get_ticks() #該時間指的從pygame初始化后開始計算,到調(diào)用該函數(shù)為止
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 秒后才會加載圖片
2) 設(shè)置游戲FPS
若想設(shè)置游戲的幀數(shù)率(FPS)可以通過 Clock() 方法來實現(xiàn),該對象提供了以下常用方法:
| 方法 | 說明 |
|---|---|
| pygame.time.Clock.tick() | 更新clock對象 |
| pygame.time.Clock.get_time() | 獲取上一個tick中的時間 |
| pygame.time.Clock.get_fps() | 計算clock對象的幀率 |
下面看一組簡單的應(yīng)用示例:
import pygame
pygame.init()
screen = pygame.display.set_mode((500,300))
pygame.display.set_caption('c語言中文網(wǎng)')
# 獲取以毫秒為單位的時間
t = pygame.time.get_ticks() #該時間指的從pygame初始化后開始計算,到調(diào)用該函數(shù)為止
t1 =pygame.time.delay(3000) #暫停游戲3000毫秒
print(t1)
#暫停t1時間后,加載圖片
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png")
#創(chuàng)建時鐘對象(控制游戲的FPS)
clock = pygame.time.Clock()
while True:
#通過時鐘對象,指定循環(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(游戲幀率)影響效果只有在動態(tài)圖時才能顯現(xiàn)出來,不過無論靜態(tài)圖還是動態(tài)圖,它們的使用規(guī)則都是一樣的。
到此這篇關(guān)于Pygame Time時間控制的具體使用詳解的文章就介紹到這了,更多相關(guān)Pygame Time時間控制內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信