get_surface().blit() 对比 var_screen.blit()
get_surface().blit() vs var_screen.blit()
我想知道 - 将 pygame "window" 表面保存为变量并为每个图像调用变量 blit 或调用 get_surface() 是否更高效。 blit(...) 每次?
尤其是游戏方面,有很多很多pngs/sprites/something。我想知道是否有人有过调用函数的性能而不是将 "screen" 保存在变量中的经验?
带有变量的示例一:
screen = pygame.display.get_surface()
while True:
screen.blit(my_image.png)
例子二:
while True:
pygame.display.get_surface().blit(my_image.png)
此致,
克里伯
我已经采纳了建议,并且 运行 自己进行了性能测试,从性能方面来看,这显然并不重要。
所以决定因素是可读性,我将使用 screen.blit() 的变量选项。
start_time = time.time()
while i <= 1000:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
#pygame.display.get_surface().blit(png, (x, y))
screen.blit(png, (x, y))
pygame.display.flip()
i += 1
elapsed_time = time.time() - start_time
1) display.get_surface().blit()
总和 = 14.827981948852539
x100 - Elapsed time: 0.31400012969970703
x1000 - Elapsed time: 2.9339892864227295
x1000 - Elapsed time: 2.897007465362549
x1000 - Elapsed time: 2.9139883518218994
x1000 - Elapsed time: 2.834001064300537
x1000 - Elapsed time: 2.934995651245117
2) screen.blit()
总和 = 14.843550443649292
x100 - Elapsed time: 0.2919886112213135
x1000 - Elapsed time: 2.8539986610412598
x1000 - Elapsed time: 2.914994239807129
x1000 - Elapsed time: 2.926569938659668
x1000 - Elapsed time: 2.9420039653778076
x1000 - Elapsed time: 2.9139950275421143
我想知道 - 将 pygame "window" 表面保存为变量并为每个图像调用变量 blit 或调用 get_surface() 是否更高效。 blit(...) 每次?
尤其是游戏方面,有很多很多pngs/sprites/something。我想知道是否有人有过调用函数的性能而不是将 "screen" 保存在变量中的经验?
带有变量的示例一:
screen = pygame.display.get_surface()
while True:
screen.blit(my_image.png)
例子二:
while True:
pygame.display.get_surface().blit(my_image.png)
此致, 克里伯
我已经采纳了建议,并且 运行 自己进行了性能测试,从性能方面来看,这显然并不重要。
所以决定因素是可读性,我将使用 screen.blit() 的变量选项。
start_time = time.time()
while i <= 1000:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
#pygame.display.get_surface().blit(png, (x, y))
screen.blit(png, (x, y))
pygame.display.flip()
i += 1
elapsed_time = time.time() - start_time
1) display.get_surface().blit()
总和 = 14.827981948852539
x100 - Elapsed time: 0.31400012969970703
x1000 - Elapsed time: 2.9339892864227295
x1000 - Elapsed time: 2.897007465362549
x1000 - Elapsed time: 2.9139883518218994
x1000 - Elapsed time: 2.834001064300537
x1000 - Elapsed time: 2.934995651245117
2) screen.blit()
总和 = 14.843550443649292
x100 - Elapsed time: 0.2919886112213135
x1000 - Elapsed time: 2.8539986610412598
x1000 - Elapsed time: 2.914994239807129
x1000 - Elapsed time: 2.926569938659668
x1000 - Elapsed time: 2.9420039653778076
x1000 - Elapsed time: 2.9139950275421143