我剛開始玩LibGDX,並且已經面臨相機問題。LibGDX - Camera.update()調用什麼都不做
我看到網上一些TUTOS其告知,如果我使用LibGDX你已經重新計算所有實體的(我指的是屏幕上everyinthg)以參數的速度等位置深知,在2D遊戲...
對我來說,這意味着相機不會移動,但它顯示的世界。 我想做相反的事,移動相機而不是世界,因爲它對我來說更有意義,而且看起來更容易,因爲我只需移動相機,而不是所有實體。所以我不希望世界移動,我的相機顯示更改,但我的相機移動並顯示更改。因此,即使某些實體不移動(它們的座標x & y不會改變),它會看起來像相機移動。
所以我有一個Camera
類繼承OrthographicalCamera
,和Entity
類。 我也有2個接口PositionListener
& PositionListenable
=>模式觀察者。
所以我試圖做的是:
- 我的相機「聽」到只有我的實體之一(例如玩家)
- 當我的實體移動時,它會更新相機的座標(X,Y )並且我的相機將其位置更改爲x和y以跟隨我的實體。
這裏是Camera.java代碼:
public class Camera extends OrthographicCamera implements PositionListener {
public Camera(float width, float height) {
super(width, height);
}
@Override
public void entityMoved(float newX, float newY) {
translate(newX - position.x, newY - position.y);
update();
Gdx.app.log("entityMoved()", "newX=" + newX + " - newY=" + newY);
Gdx.app.log("entityMoved()", "position.x=" + position.x + " - position.y=" + position.y);
}
}
當我讀日誌,我看到position.x
和position.y
改變我預料之中的事跟着我的實體,但在視覺上相機不動?一切看起來都像我的相機不翻譯一樣!
我的相機根本不動,只有我的實體!
我錯過了什麼?我讀了一些關於「viewPort」的內容,但是真的沒有得到,因爲我是LibGDX的初學者。
+1 thanks for this! – Nolesh 2012-10-26 00:53:54