我正在构建一个基于画布的网页游戏,在桌面上以60fps的速度运行。它也运行在60fps在android上的铬。我将它加载到phonegap应用程序中,并且fps计数器仍然读取60fps,但屏幕每隔几个刻度就会绘制一次。是否有一个刷新率限制器,迫使webview只能每秒一次地绘制?甚至当网站宣称它的重绘速度为60fps时,还有哪些其他的东西可能会限制我的绘图?Phonegap画布低刷新率
回答
默认情况下,PhoneGap将使用内置的默认浏览器,该浏览器不是Chrome浏览器,除非您正在使用KitKat,但这是一个不同的故事。
现在我有问题,我自己甚至像得到一个用户签名小画布项目的默认浏览器,但是那是因为火灾的TouchEvent率低......
但无论如何,可行的解决方案将是强制的PhoneGap使用而不是默认的一个WebChromeClient,你可以做到这一点的super.loadUrl
调用之前加入如下一行:
appView.setWebChromeClient(new WebChromeClient());
如果强制使用WebChromeClient确保您启用JavaScript,本地存储,如果你需要它,等等。也有可能一些PhoneGap插件会中断。如果你的游戏纯粹是HTML5而不是我建议的考虑,不要为你的android版本使用phonegap,那么构建一个简单的WebView应用程序在Android中很容易。
此外,如果你的游戏打算使用加速度传感器,看看什么是浏览器的原生支持:Can I Use resources
希望它帮助。 Emil
这是一个非常有趣的回复。为了记录,我正在使用kitkat。它在webview中运行chrome。奇怪的是,它运行在phonegap之外的60fps,以及手机间隙内60fps(通过xStats输出),唯一的区别是它只是以大约2fps的速度对我进行物理重绘。我还没有看到电话之上的其他抽象层吗?这是一个在手机上缺乏特定功能的画布的常见行为吗? – Dested
是的,我很害怕,我进一步阅读,似乎是PhoneGap的一个问题,无法资助确切的为什么。看起来,甚至连Andorid 4.4默认浏览器都不支持WebGl,而Chrome则支持(在浏览器中打开Chrome并输入:about:// gpu)。您可以尝试强制使用GPU,并在这里显示技巧:http://davidwalsh.name/translate3d。为了能够给你更精确的文档,我做了更深入的挖掘,并且我可以证实,甚至连KitKat Chromium webview都支持WebGL(请参阅:http://buff.ly/JjQSm8) –
Whit所有这些说法并放在一起我认为你应该尝试寻找替代解决方案。 QuickFix建议的FastCavans或由我自己建议的Intel XDK(我现在正在下载以供玩耍)。此外,我忘了提及,它看起来100%愚蠢,但请确保您已在您的Manifest中启用硬件加速
- 1. 刷新画布?
- 2. Wpf画布刷新
- 3. 低帧率将位图写入画布
- 4. 如何刷新画布
- 5. 画布开始刷新
- 6. 刷卡刷新布局动画的android
- 7. GPS刷新率
- 8. RSS:刷新率?
- 9. requestAnimationFrame刷新率
- 10. 拉在Phonegap刷新
- 11. 如何避免html5画布在页面刷新时刷新
- 12. 每次更改后刷新画布
- 13. iPad的HTML5画布不刷新
- 14. 将画布缩放至全屏确实会降低分辨率
- 15. 页脚在低分辨率画布上重叠内容
- 16. Android onTouch刷新率
- 17. Android画布/ Paint - 更改Android画布笔刷的刷子尺寸
- 18. 画一个低分辨率的圈子
- 19. HTML5动画在持久刷新的画布上
- 20. 无法刷新画布 - 通过画图但不会更改
- 21. 画布的另一部分显示画布的罕见重复,但不会降低性能。 Android,Phonegap,JQM
- 22. d3画布笔刷/选择
- 23. 确定RSS刷新率
- 24. Pygame缓慢刷新率
- 25. Windows(Vista)CMD Verticle刷新率
- 26. 覆盖屏幕刷新率
- 27. Android TelephonyManager getAllCellInfo()刷新率RSSI
- 28. 广告投放刷新率
- 29. Authorize.net报告刷新率?
- 30. Android显示刷新率
也许你会有更好的表现与以下插件(需要全屏画布,并没有实现所有的画布功能)https://github.com/phonegap/phonegap-plugin-fast-canvas – QuickFix
你是否控制重画与'requestAnimationFrame'? – fny
我会研究fastcanvas,但我希望我不会。是的,我正在使用requestanimationframe – Dested