2

在使用以下设置构建 windows (cpp) 目标时,我的 haxeflixel 游戏出现了一些意外的性能问题

    <window if="cpp" width="480" height="270" fps="60" background="#000000"
        hardware="false" vsync="true" />

我注意到,当我将窗口大小重新调整为更大的分辨率,或者全屏到 1920x1080p 时,游戏会变得更慢和滞后。但是根据 flixel 调试控制台,所有分辨率的帧速率都是相同的。

更有趣的是,我的 flash 导出运行起来更加流畅,而我希望 cpp 目标运行得更快。

这是一个 2d 平台游戏,大约有 6 个 tilemap(最大的 tilemap 为 1600x1440)和 32x32 或 16x16 的 sprite。我没想到在任何现代系统上都会出现性能问题。所以我担心我做错了什么,比如错过了一个明显的设置。

这是正常的吗?我应该检查任何关键的渲染性能因素吗?如果您认为这会有所帮助,请随时向我询问任何详细信息。

使用 Haxeflixel 3.3.12

4

2 回答 2

1

我认为这可能是所有 C++ 目标中的一个常见问题。我在我的游戏的 Linux 本机目标上也体验到了这一点。我的解决方案是通过禁用抗锯齿

<window antialiasing="0" />

当然,这最适用于像素艺术,而不是 3D 或高清的东西。然后仍然存在在更高分辨率(视网膜显示器等)下性能下降的潜在问题。但这可能足以作为权宜之计。

于 2016-03-06T17:23:39.197 回答
0

我一直在用不同的配置测试我的应用程序设置,当我终于发现关闭该vsync选项会产生最大的影响时。有一些垂直抖动,但最终游戏运行速度很快,而且windows target比flash快。

原来我现在的笔记本电脑有一个 IntelHD GPU,而且 vsync 功能似乎被破坏了。我记得我以前配备低端 AMD GPU 的 PC 没有这个问题。

我会考虑在游戏中添加一个切换垂直同步的选项,以便非英特尔用户可以从垂直同步中受益。

其他似乎有帮助的事情是:

  1. antialiasing按照@Jon O 的建议关闭
  2. 开启hardware_

作为参考,我当前的设置是

<window if="cpp" width="960" height="540" fps="60" background="#000000" hardware="true" vsync="false" antialiasing="0" />
于 2016-03-25T17:01:37.063 回答