2014-09-24 62 views
0

我想要視差滾動固定寬度和高度的Sprite背後的紋理。Sprite中的視差滾動LibGDX

的問題是我需要只是滾動紋理在給定的寬度和高度,而不是到屏幕的末端。我需要這種紋理的窗口視圖。

我可以覆蓋有黑色區域的屏幕的其餘部分,但必須有一個更好的解決方案,我想;-)

目前即時通訊這樣

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

,並重置精靈,其中x是大於屏幕寬度。但我有一個較小的區域內的滾動應該不會從屏幕開始到屏幕結束。

希望有人提示我如何實現這一點。

+0

也許你可以創建紋理區域與你的紋理的一部分,並繪製它的方式。其他更有效的解決方案將會是模擬我猜。 – Veljko 2014-09-24 18:22:38

回答

0

我使用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); 

會使大小「60%在20%位置 (因此居中)的子'窗口視口中,沒有任何東西在該窗口之外呈現(由OpenGL剪輯)。希望這可以幫助別人!