pygame 扩展像素艺术游戏的最佳方式是什么?

Which is the best way to scale pixel art games with pygame?

Sprites 显示与图像中的一样,但我希望它们显示得更大(不模糊像素艺术)。 我缩放了敌人和玩家 class (using pygame.transform.scale()) 中的 Sprites,我试过了,但我确信还有另一种更有效的解决方案来解决这个问题;比如把所有东西都放在一个表面上,然后缩放整个表面,而不是分别缩放每个元素。

screen = pygame.display.set_mode((width, height))


while(True):
  player.update()   #updates the character position

  enemy.update()


  # draw
  player_list.draw(screen) #draw player
  enemy_list.draw(screen) #draw enemy


  #pygame.transform.scale(surface, (1,1))
  screen.blit(update_fps(), (10,0))

  pygame.display.flip()

哪个是解决这个问题的最佳方法?

使用 pygame.transform.smoothscale or pygame.transform.scale to scale the pygame.Surface 个对象:

scaled_image = pygame.transform.smoothscale(image, (new_width, new_height))

我有一个解决方案:

对于任何想要制作像素艺术的人来说,这可能会有用:

如果你制作像素画,它可能会像这样显示

只要使用 pygame.transform.scale(surface, (x,y)) 其中 x 和 y 是屏幕的尺寸(在我的例子中 screen = pygame.display.set_mode((640, 360)) )应该绘制完美缩放的像素艺术,如下所示: