新手程序员在这里工作,与开罗和快板5
我设计用快板5 2D游戏,我已经注意到,在快板位图工作时(从Photoshop中导出的PNG文件实际上...),其旋转图像看起来比恒星:rotated meteor
左边的一个是在原来的方向和右边的一个旋转10度。它们有点小,但边缘质量的差异很明显。
首先,我会真的想避免创建一个精灵表包括以下原因,所有的不同的旋转位置:
我有不同的“效果”发生在流星,我的所有其他对象创造这将需要在对象周围发光。我将在每个物体周围应用至少6种不同的发光颜色。现在每个流星都需要有30帧的旋转才能看起来平滑。比方说,我想在游戏中使用这样一个可怜的10个不同的对象;那1800个文件就是针对这些对象的!
我宁愿集中精力寻找一种更好的方式来显示比花时间做旋转图像。
我试过研究各种各样的photoshop技术,但最好的我可以拿出来是让photoshop中的圆稍小,然后让它'发光'相同的灰色阴影这种解决旋转问题,但它使流星看起来模糊。
然后我做了一些更多的研究,发现在Allegro 5中可以使用各种混合选项。我尝试了al_set_blender中所有可能的选项 - 它们都没有解决锯齿边缘的问题。
最后,我再次搜索如何处理这个问题,并在Allegro 5中发现了关于反走样的this post。正如答案中指出的那样,有一个反走样选项可用,但仅限于工作的主要限制当绘制原语到后台缓冲区时。实际上,实施这将是一大堆工作,并且每次都绘制所有必需的基元似乎效率很低。
什么吸引了我的注意力在其他职位,然而,此评论:
顺便说一句,如果你不需要实时性的游戏,你也可以挂接到libcairo画漂亮的矢量图形。将它与Allegro绑定非常简单,但这是一个不同的主题。
所以我再次对图形库进行了研究,以及它们如何解决我的问题。我看着开罗,SDL,Qt的,ImageMagic,等等,但最后我同意开罗似乎是这份工作的合适工具。
最后,我们到达了原因后:
我的问题是:我怎样才能“勾开罗”到Allegro 5?
现在,我还没有和开罗做过任何工作,所以我没有拘束于此,但是我想继续使用Allegro,除非真的有很好的理由去切换别的东西。
Allegro有一个简单而直接的方式来创建显示并使用allegro命令对其进行绘制。但是开罗有自己的做事方式,而开罗似乎根本不管理展示。我可以想象两者协同工作的唯一方式是开罗接收绘图命令,绘制图像,将图像保存为png文件,然后打开allegro功能并在该文件中读取1帧。这不可能是评论者所掌握的。
反正,随意批评我的思维过程。我不会被冒犯。如果有一些简单的事情你觉得我还没有明白,请赐教。
“只有在绘制原始图像到后台缓冲区时才会工作的主要限制”嗯,你还会在哪里绘制它?你是否对位图进行了大量的传输,然后你对其他位图进行传输?如果是这样,你不应该。 – 2012-07-21 09:11:29
你需要问如何解决你原来的问题(在一个单独的问题)。要做到这一点,我们需要看看你用来渲染的实际代码是什么。你把马车放在马前。 – 2012-07-21 09:14:05
对不起,我想我不应该直接批评原始图片。我只是觉得没人会这么做,因为它效率低下。我想我只是假设你有A)每个可能的旋转角度都有大量的精灵片B)有边缘混合方法来平滑粗糙的边缘,但我仍然不知道。 – NauticalMile 2012-07-21 18:37:21