【发布时间】:2012-06-07 05:50:00
【问题描述】:
在所附的两张图片中,libgdx 的桌面截图按预期运行。不幸的是,我的 Galaxy Nexus 的屏幕截图不如预期。我正在尝试创建一个简单的运动模糊或轨迹效果。
在我的桌面上按预期进行渲染。
在我的 Galaxy Nexus 上未按预期呈现。
圆形纹理在渲染过程中在for循环中绘制,并且使用在圆形之前绘制的0,0,0,0.1f的RGBA的像素图来实现效果。
screenClearSprite 创建
Pixmap screenClearPixmap = new Pixmap(256, 256, Format.RGBA8888);
screenClearPixmap.setColor(Color.rgba8888(0, 0, 0, 0.1f));
screenClearPixmap.fillRectangle(0, 0, 256, 256);
screenClearTexture = new Texture(screenClearPixmap);
screenClearSprite = new Sprite(screenClearTexture);
screenClearSprite.setSize(screenWidth, screenHeight);
screenClearPixmap.dispose();
渲染
batch.begin();
font.draw(batch, "fps:" + Gdx.graphics.getFramesPerSecond(), 0, 20);
screenClearSprite.draw(batch);
for (int i = 0; i < circleBodies.size(); i++) {
tempPos = circleBodies.get(i).getPosition();
batch.draw(circleTexture, (tempPos.x * SCALE) + screenWidthHalf
- circleSizeHalf, (tempPos.y * SCALE) + screenHeightHalf
- circleSizeHalf);
}
batch.end();
那么,我做错了什么?也许有更好的方法来获得运动的“运动模糊”效果?
【问题讨论】:
-
你能在其他安卓设备上重现这种行为吗?
-
你确定有问题吗,因为第二个屏幕截图上的球看起来比第一个屏幕截图上的球移动得慢?你的游戏循环是什么?您是否使用当前时间来计算运动模糊 - 可能是与您的 PC CPU 相比,nexus 的 CPU 更快/更慢。
-
是的,这可以在我的 Vibrant 和 Galaxy Nexus S 上重现。至于模糊,它们没有运动模糊计算。运动模糊可能不是该效果的最准确术语。我正在寻找的效果在顶部图像中准确描绘。问题似乎是作为不透明层绘制的纹理不能正确计算到 1。这会导致令人讨厌的条纹,我无法解释,因为它在我的两台电脑上按预期工作。
标签: java android opengl-es libgdx