Возможно, это действительно зависит от размера карты, но это не должно быть проблемой даже для низкоуровневого компьютера.
Проблема с большими изображениями заключается в том, что перерисовка всех занимает много времениматериал на нем, так что вы получите негибкую «карту».
Но реальное преимущество с оптимизированным изображением (используйте функцию convert () и 16 бит) - это быстрые блики.
Я также работаю с большими изображениями, возможно, со средним хорошим компьютером, и у меня около 150 кадров в секунду, благодаря огромным изображениям, которые требуют всего ~ 100?МБ ОЗУ
image = image.convert()#video system has to be initialed
Следующий код создает изображение (5000 * 5000), что-то рисует на нем (перетаскивает это на экран, заполняет экран) * 50 раз и в конце говорит, как долгопотребовалось сделать один удар и один бросок.
def draw(dr,image,count,radius,r):
for i in range(0,5000,5000//count):
for j in range(0,5000,5000//count):
dr.circle(image,(r.randint(0,255),r.randint(0,255),r.randint(0,255)),[i,j],radius,0)
def geschw_test(screen,image,p):
t1 = p.time.get_ticks()
screen.blit(image,(-100,-100))
p.display.flip()
return p.time.get_ticks() - t1
import pygame as p
import random as r
p.init()
image = p.Surface([5000,5000])
image.fill((255,255,255))
image.set_colorkey((255,255,255))
screen = p.display.set_mode([1440,900],p.SWSURFACE,16)
image = image.convert()#extremely efficient
screen.fill((70,200,70))
draw(p.draw,image,65,50,r)#draw on surface
zahler = 0
anz = 20
speed_arr = []
while zahler < anz:
zahler += 1
screen.fill((0,0,0))
speed_arr.append(geschw_test(screen,image,p))
p.quit()
speed = 0
for i in speed_arr:
speed += i
print(round(speed/anz,1),"miliseconds per blit with flip")