2014-01-28 65 views
0

The full code is on GitHublibGDX Sprite無法呈現

我相當肯定與渲染的問題是Pong.java(SRC/COM/ME /乓/ Pong.java)在render()方法:

@Override 
    public void render() { 
      update(); 

      Gdx.graphics.setTitle("Pong | " + (int)(1.0f/Gdx.graphics.getDeltaTime()) + " FPS"); 

      Gdx.gl.glClearColor(1, 1, 1, 1); 
      Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 

      camera.update(); 
      batch.setProjectionMatrix(camera.combined); 

      batch.begin(); 
      for(Entity e : entities) { 
        e.draw(batch); 
      } 
      batch.end(); 
    } 

,因爲似乎沒有在Ball或加載使用的紋理的任何問題。

它也有可能是由於Ball的定位,開始了,但我懷疑的是,因爲點是正確的(在update(),我打印了從x座標sprite當它熄滅一側或另一個,到目前爲止我還沒有看到意想不到的值)。

我試過在官方的libGDX文檔上找到更多的信息,但找不到任何東西,例如,對於精靈座標系統vs原始座標(他們似乎是不同的)。我也嘗試了其他StackOverflow線程e.g. this上提出的一些修復,但似乎沒有改變程序的輸出,至少不是表面上。

主要問題是根本無法呈現Ball由於我試圖確定和修復的某些未知原因。我有一些想法,但我不知道從哪裏去。

如果需要發佈其他片段以獲得更好的分析結果,我很樂意發佈它們。

+0

什麼是你的實體?它是一個libgdx類的子類嗎? entity.draw(批處理)的代碼是什麼?你在哪裏設置你的相機的位置? – Springrbua

+0

大小怎麼樣?這段代碼沒有錯誤 – Lestat

+0

@Springrbua你可以在src/com/me/pong/Entity.java中找到實體。這是一個簡單的界面,應該包含任何遊戲實體的最基本的方法。如果您願意,我會將它添加到主帖子中。 –

回答

2

我看了一下代碼。您可以創建以下凸輪: camera = new OrthographicCamera(1, h/w); 如果查看API,凸輪的構造函數需要Viewport高度和視口寬度。您設置了hight = 1with = Gdx.graphics.getWidth()/Gdx.graphics.getHight(); 然後您將Ball的位置設置爲Gdx.graphics.getWidth()/2, Gdx.graphics.getHight()/2。由於您只能看到從P1(0/0)P2(1/0.x) (depends on screenresolution)的座標,您看不到您的對象,因此它超出範圍。將相機視口設置爲80寬度和45高度(16/9)。然後你可以把你的對象放在你自己的世界座標系中(40,22.5在中間)。

+0

啊!修復它,謝謝。有關如何「移動」攝像機以使窗口左下角爲(0.0,0.0)的任何想法?試圖找出一切屬於這種稍微不直觀的定位是相當令人沮喪的。 –

+1

必須將凸輪位置設置爲camWidth/2,camHeight/2。那是因爲攝像機0,0位於其中間。 – Springrbua