【问题标题】:Parallax scrolling in Sprite LibGDXSprite LibGDX 中的视差滚动
【发布时间】:2014-09-24 14:41:49
【问题描述】:

我想在具有固定宽度和高度的 Sprite 后面进行视差滚动纹理。

问题是我只需要以给定的宽度和高度滚动纹理,而不是滚动到屏幕的末尾。我需要类似这个纹理的窗口视图。

我可以用黑色区域覆盖屏幕的其余部分,但我猜必须有更好的解决方案;-)

目前正在做这个

sprite.setX(sprite.getX() + (OVERLAY_ANIMATION_SPEED * delta));
sprite2.setX(sprite2.getX() + (OVERLAY_ANIMATION_SPEED * delta));

并重置 x 大于屏幕宽度的精灵。但我在屏幕内有一个较小的区域,滚动不应该出现在屏幕的开头到结尾。

希望有人能告诉我如何实现这一目标。

【问题讨论】:

  • 也许你可以用你的部分纹理创建纹理区域并以这种方式绘制它。我猜其他更有效的解决方案是模板。

标签: scroll libgdx textures sprite parallax


【解决方案1】:

我正在使用 glViewport 来实现类似的功能:

public void setViewPort(float dx, float dy, float sx, float sy)
{
    Gdx.gl.glViewport((int) (screenWidth * dx), (int) (screenHeight * dy),
                      (int) (screenWidth * sx), (int) (screenHeight * sy));
}

所以:

setViewPort(0, 0, 1, 1);

将呈现全屏并且:

setViewPort(0.2f, 0.2f, 0.6f, 0.6f);

将在 20% 的位置渲染 60% 大小的“子”窗口视口 (因此居中),在该窗口之外没有呈现任何内容(由 OpenGL 剪辑)。希望这对某人有帮助!

【讨论】:

    猜你喜欢
    • 2011-11-22
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多