我正在开发的游戏在 Java 后端和 IE 10 上呈现完美。但是在 Chrome 和 Android 上呈现很奇怪。我假设这是分别因为 WebGL 和 OpenGL。 这是它在 IE 上的样子。
这是它在 Chrome 上的样子,在 Android 后端看起来也完全一样。
背景没有渲染,只渲染了第一个和最后一个文本元素
在 Chrome 和 Android 中运行时,是否对纹理大小等有任何限制,我需要特别注意什么?我所有的纹理的尺寸都是 2 的次方。我什至尝试创建尺寸为 2 次幂的每个表面,但似乎无济于事。
更新:我修复了以下问题。这是由于我编写的 UI 工具包中的一个错误,每次设置小部件的文本时都会创建一个新的表面。
我不确定是否与以下问题有关,但有时游戏会在 Android 上崩溃并出现以下异常:
03-16 14:22:29.010 E/AndroidRuntime(16253): FATAL EXCEPTION: GLThread 10
03-16 14:22:29.010 E/AndroidRuntime(16253): java.lang.StackOverflowError
03-16 14:22:29.010 E/AndroidRuntime(16253): at playn.android.AndroidPlatform.log(AndroidPlatform.java:28)
03-16 14:22:29.010 E/AndroidRuntime(16253): at playn.core.PlayN.log(PlayN.java:120)
......
......
......
playn.core.gl.GLContext$Pender.process(GLContext.java:242)
03-16 14:22:29.010 E/AndroidRuntime(16253): at playn.core.gl.GLContext$Pender.process(GLContext.java:242)
03-16 14:22:29.010 E/AndroidRuntime(16253): at playn.core.gl.GLContext$Pender.process(GLContext.j
这是因为在 http://code.google.com/p/playn/source/browse/core/src/playn/core/gl/GLContext.java , GLContext$Pender.process() 似乎在一个永无止境的循环中被调用。不过,这并非每次都会发生。
最佳答案
我在查看 TriplePlay 库的源代码时突然想到我只能在 paint() 中绘制图像。我曾经将部分图像从 spritesheet 复制到不同的小部件。复制是在小部件创建期间完成的,这通常发生在响应触摸事件时。当我将图像复制切换到内部 paint() 时,它开始完美运行。
关于android - 在 Chrome 和 Android 上呈现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755490/