0

我正在尝试使用 pygame 开发一个 16 位时代的游戏。我正在使用 FlashDevelop 和 Flixel,但我想尝试一些更可靠的东西。我遇到的问题是游戏的外观,我希望屏幕中的每个像素都“更大”,我的意思是,对于 320x240 表面中的每个像素,我需要在 640x480 表面中进行 2x2 像素投影以获得外观像 Frogatto 这样的游戏。到处问,我发现它不像在 Flixel 中那么容易。

你们能指导我吗?

更新

我想出了一种方法将缩放的表面插入主表面,如下所示

screenSize = width, height = 640, 480
mainScreen = pygame.display.set_mode(screenSize)
smallScreen = pygame.Surface((320, 240))
pygame.transform.scale(smallScreen, screenSize, mainScreen)

如果有人能给我一些关于这件事的最佳实践的建议,我将不胜感激。

4

2 回答 2

0

不确定您是否在询问有关 pygame 的具体建议或如何升级 320x240 --> 640x480 像素...

如果是后者,那么:

MAME 使用了几种算法来升级像素艺术 - 搜索 hq2x、hq3x、hq4x;或者看看http://en.wikipedia.org/wiki/Hqx或更一般地http://en.wikipedia.org/wiki/Pixel_art_scaling_algorithms

对于您需要的东西,可能有点离题,但http://research.microsoft.com/en-us/um/people/kopf/pixelart/index.html显示了像素缩放方面的一些非常有趣的发展。

于 2011-08-21T23:36:25.323 回答
0

如果您将所有各种图形每帧都绘制到位图上(就像 Flixel 所做的那样),您可以将位图的比例设置为 2.0 而不是默认的 1。

From what I understand of Flixel, the main class only has one child added to the screen, a bitmap. Each flixel object that is shown is drawn each frame to that bitmap. Flixel's scale variable is just the scale of that bitmap.

于 2012-03-07T18:31:48.860 回答