Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scroll 在Sprite LibGDX中滚动视差_Scroll_Libgdx_Textures_Sprite_Parallax - Fatal编程技术网

Scroll 在Sprite LibGDX中滚动视差

Scroll 在Sprite LibGDX中滚动视差,scroll,libgdx,textures,sprite,parallax,Scroll,Libgdx,Textures,Sprite,Parallax,我想在固定宽度和高度的精灵后面用视差滚动纹理 问题是我需要在给定的宽度和高度上滚动纹理,而不是滚动到屏幕的末端。我需要一个类似于这个纹理的窗口视图 我可以用黑色区域覆盖屏幕的其余部分,但我想必须有更好的解决方案- 目前我正在做这件事 sprite.setX(sprite.getX() + (OVERLAY_ANIMATION_SPEED * delta)); sprite2.setX(sprite2.getX() + (OVERLAY_ANIMATION_SPEED * delta)); 并重

我想在固定宽度和高度的精灵后面用视差滚动纹理

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

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

目前我正在做这件事

sprite.setX(sprite.getX() + (OVERLAY_ANIMATION_SPEED * delta));
sprite2.setX(sprite2.getX() + (OVERLAY_ANIMATION_SPEED * delta));
并重置x大于屏幕宽度的精灵。但是我在屏幕内部有一个较小的区域,滚动不应该从屏幕的开始到结束出现


希望有人能给我一个如何实现这一点的提示。

我正在使用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.2f, 0.2f, 0.6f, 0.6f);
将在20%的位置渲染60%大小的“子”窗口视口
因此,在OpenGL剪裁的窗口外,不会渲染任何内容。希望这对别人有帮助

也许你可以用你的一部分纹理创建纹理区域,并以此方式绘制。我想另一个更有效的解决方案是模版印刷。
setViewPort(0.2f, 0.2f, 0.6f, 0.6f);