2012-03-18 105 views
2

我正在开发的游戏在Java后端和IE 10上完美呈现。但是,Chrome和Android上的渲染很奇怪。我认为这是因为OpenGL分别是WebGL &。 以下是它在IE上的外观。 IEChrome和Android上的渲染问题

下面是它在Chrome上的外观,它在Android后端上的外观也完全相同。 Chrome

背景没有得到呈现,而只有第一个和最后一个文本元素得到了呈现

是在Chrome和Android,什么特别运行时,我要照顾的纹理大小等任何限制?我所有的纹理都有2s的大小。我甚至尝试创建尺寸为2s的每个表面,但它似乎没有帮助。

更新:我修复了以下问题。这是由于我编写的用户界面工具包中存在一个错误,在每次设置小部件文本时都会创建一个新表面。

我不知道如果下面的问题是相关的,但有时在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()似乎被称为一个永无止境的循环。不过这并不是每次都会发生。

+4

'java.lang.StackOverflowError' ...看起来像你来到正确的地方寻求帮助;) – 2012-03-18 02:27:54

+0

什么是你的纹理大小? – 2012-03-18 02:31:26

+0

一些512x512,以及一些1024x1024。我的手机是三星Galaxy R,而且我很确定它能够处理这些纹理尺寸。 – BlueSilver 2012-03-18 02:36:41

回答

0

我在查看TriplePlay库的源代码时,发现我只能在paint()中绘制图像。我曾经从spritesheet复制图像的部分到不同的小部件。复制是在小部件创建过程中完成的,这通常是针对触摸事件发生的。当我将图像复制切换到内部paint()时,它开始工作完美。