解决Pygame高分辨率卡顿问题
在做游戏的时候需要一张地图,但是这张地图非常大,而且是通过pygame.draw.rect()
来绘制出来的。
整张地图的分辨率在8000x8000左右,我通过pygame.surface.Surface((8000,8000),flags=SRCALPHA)
绘制出地图然后用鼠标偏移来控制地图的位置。
但是由于整张地图分辨率太高,所以绘制出来的时候特别的卡。
下面是部分代码:
while True:
screen = pygame.surface.Surface((8000,8000), flags = SRCALPHA)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == MOUSEBUTTONDOWN:
mouseState = True
lastPos = pygame.mouse.get_pos()
if event.type == MOUSEBUTTONUP:
mouseState = False
canvas.fill((51, 51, 51))
if mouseState:
pos = pygame.mouse.get_pos()
dx += pos[0] - lastPos[0]
dy += pos[1] - lastPos[1]
lastPos = pos
for i in range(int(screen.get_height() / 70) + 1):
for j in range(int(screen.get_width() / 70) + 1):
if (70 - 1) * j + 70 + 2 + dx >= 0 and (70 - 1) * i + 70 + 2 + dy >= 0 and ( # 这里是用来优化的,然是优化过后仍然会卡
70 - 1) * j - 2 + dx + 70 <= canvas.get_width() and (
70 - 1) * i - 2 + dy + 70 <= canvas.get_height():
pygame.draw.rect(screen, (60, 60, 60), pygame.Rect((70 - 1) * j, (70 - 1) * i, 70, 70), 2)
clock.tick(fps)
canvas.blit(screen,(dx, dy))
pygame.display.update()
请问有没有什么优化方法可以让界面不变的这么卡
望解决!