2013-05-29 51 views
2

SpriteBatch.SetProjectionMatrix(cam.combined)使得Spritebatch不會繪製塊和我的角色,但相機移動的作品,但如果我不使用這行代碼一切都繪製,但相機不工作?有誰知道解決方案,因爲如果根本看不到它。Libgdx SpriteBatch.SetProjectionMatrix讓spritebatch不會繪製

編輯:對不起,凌亂的第一篇文章

下面是一段代碼是麻煩:

public void render() 
    { 


     cam.update(); 
     spriteBatch.setProjectionMatrix(cam.combined); 



     spriteBatch.begin(); 

     drawBlocks(); 
     drawBob(); 


     spriteBatch.end(); 
     cam.position.x = world.bob.GetPosition().x; 
     cam.update(); 

     drawCollisionBlocks(); 


     if(debug) 
      drawDebug(); 
    } 
+5

歡迎來到StackOverflow,Ado!對於SO來說,這是一段非常長的代碼。是否真的有必要回答你的問題?如果你能縮小這個問題的範圍,那麼人們會更容易幫忙。 (另外,當你插入代碼的時候,使用'字符來包圍它或者突出顯示它,然後按下ctrl + K而不是使用'>',這表示一個引號。我已經在你的當前文章中解決了這個問題) – ASGM

回答

3

我找到了解決辦法,但任何人誰可能有這樣那樣的問題,今後的問題是在畫我在那裏繪製這樣 紋理方法:

CODE:

spriteBatch.draw(bobFrame, bob.GetPosition().x * PPuX, bob.GetPosition().y*PPuY ,Bob.SIZE*PPuX , Bob.SIZE*PPuY); 

PPuX,PPuY是int類型,用於不同的屏幕尺寸,這是搞亂spriteBatch當我設置投影矩陣

+0

感謝您發佈問題陳述!你可以通過添加修復問題的代碼來增強你的答案嗎? –

0

spriteBatch.setProjectionMatrix(cam.combined)讓spriteBatch使用通過cam而不是默認的指定的座標系。這是因爲兩者的座標系都不同,並且cam.combined會爲你做數學。

+0

我明白,但我的問題是爲什麼設置spritebatch投影矩陣cam.combined使spritebatch不繪製我的紋理?因爲當我評論這行代碼紋理繪製正常,你看到任何解決方案,我可以做? – Ado

0

我相信你實際上是繪製精靈,但你沒有看到他們,因爲y我們的相機視口沒有設置(即。您正在查看錯誤的座標區域)。

添加

cam.setToOrtho(false); //true to invert y axis 

「設置該照相機使用視口中擬合屏幕分辨率的正投影,中心於(Gdx.graphics.getWidth()/ 2,Gdx.graphics.getHeight()/ 2 ),y軸指向上或下。「

Link to JavaDOC here