我正在寫一個簡單的程序在Python中,它通過串口接收數據並更新屏幕。因爲我希望這個程序在運行的任何一臺計算機上看起來都是一樣的,而且它需要全屏顯示,所以我想到我想在一個小窗口中繪製所有內容,然後縮放它在每次更新幀時都會顯示爲全屏窗口。pygame(Python)縮放變換緩慢
這使我可以保持文本等所有偏移量相同。它也證明這非常慢。
下面是關於什麼的代碼的重要組成部分,看起來像:
window = pygame.display.set_mode((1920, 1080),pygame.FULLSCREEN)
screenPrescaled=pygame.Surface((640,480))
clock=pygame.time.Clock()
while iterations<400:
#Blit all the stuff to the prescaled surface here
screenPostscaled=pygame.transform.scale(screenPrescaled,(1920, 1080))
window.blit(screenPostscaled,(0,0))
pygame.display.flip()
iterations+=1
clock.tick(40)
這個運行的比40fps
慢了一大堆。
屏幕上的所有內容都是文字或線條,沒有加載圖像。 我懷疑我正在做一些愚蠢的事情。
我知道我可以更新「骯髒的長方形」只,但我不知道我是否失去了更基本的東西。
在此先感謝!
縮放比較慢,所以你不需要每一個循環。另外,你可以定義屏幕百分比的偏移量,就像在OpenGl中一樣。無論分辨率如何,SVG圖形都會縮放。 – ninMonkey 2012-11-29 03:32:46