5

在使用 Java 为 Android 创建了一些游戏之后,我正在使用 appMobi 制作我的第一款游戏。我基本上打算创建一个无尽的跑步街机游戏,2d,俯视图。

我正在使用带有普通 JS 和 CSS3 的 appMobi(没有任何其他库,例如 Impact)。

我首先用画布进行了一些测试,并创建了一个非常简单的演示,您可以在其中使用加速度计控制一个球(基本上是一个使用画布渲染的圆圈)并需要收集其他球。我用我的 Galaxy S2 和 iPhone 4 对其进行了测试,看起来 iPhone 运行得更好,所以我开始编写一个简单的引擎来使用 dom 元素。我基本上创建了一个连接到标签的对象,并保存一个位置向量,还添加了一个基本上执行以下操作的绘制函数:this.element.style.left=x+'px'(对于 top 和 y 也是如此)。

在我的主循环中,我调用了对象的绘制函数并根据我的游戏逻辑更新了它们的位置,并使用这个 window.requestAnimationFrame 包装器重新调用了 mainLoop:

window.requestAnimFrame = (function(){
       return  window.requestAnimationFrame       || 
              window.webkitRequestAnimationFrame || 
              window.mozRequestAnimationFrame    || 
              window.oRequestAnimationFrame      || 
              window.msRequestAnimationFrame     || 
              function( callback ){
                window.setTimeout(callback, 1000 / 60);
              };
    })();

然后我继续创建一个相机对象来控制屏幕定位,并使用 css background-position 属性使其成功滚动背景。我已经用我的新 Galaxy s3 和带有一些图形(2 200x200 png,和一个背景)的 s2 对其进行了测试,一切都以大约 60 fps 的速度运行。我对结果非常满意,并且很高兴在 iPhone 4 iOS 4.x 上进行测试,但令我失望的是它的运行速度为 2-3 FPS!比我的安卓慢 30 倍。我开始进行很多更改(目前我使用的是 720x1280 的视口)所以我尝试使用 320*480,改用画布,删除滚动背景,调整图像大小,但无济于事,而 android 在所有的变化。

我得到的最好的是5 FPS。我有另一部 iPhone 进行测试,一部带有 iOS5 的 iPhone 4S,FPS 非常不稳定。范围从 3 到 50,但无法播放 - 没有人会玩它,而且我什至还没有开始用内容打包它。

我真的很想利用跨平台,放弃苹果市场对我来说是一种耻辱,所以任何提示或建议都会受到热烈欢迎!

谢谢,加布里埃尔

4

2 回答 2

1

这是我在 appMobi 论坛上得到的答案,如果有人有这个问题:

使用直接画布

无论如何,JS/CSS3 在每台设备上都会表现得很糟糕。iOS(Safari)中的股票浏览器启用了 NitroJS,但在 UIWebView 中没有启用......但如果你有时间,请阅读,你会发现如果不利用 Direct 等硬件加速,你就无法编写 JS 游戏帆布。

于 2012-08-27T13:37:33.443 回答
0

在此处查找一些示例和链接以帮助您开始使用 directCanvas:

http://www.appmobi.com/documentation/index.php?DOC=DIRECTCANVAS_SDK

于 2012-09-04T13:56:00.460 回答