Pygame中的2x2像素表面

时间:2011-08-21 22:11:38

标签: pygame 16-bit flixel

我正在尝试使用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)

如果有人能就这件事的最佳实践给我一些指示,我将不胜感激。

2 个答案:

答案 0 :(得分: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显示了像素缩放中一些非常有趣的发展。

答案 1 :(得分:0)

如果您在每个帧上将所有各种图形绘制到位图上(就像Flixel所做的那样),您只需将位图的比例设置为2.0而不是默认值为1.

根据我对Flixel的理解,主类只有一个子项添加到屏幕上,一个位图。显示的每个flixel对象都将每帧绘制到该位图。 Flixel的scale变量就是该位图的比例。