2015-02-08 48 views
0

我爲我的遊戲使用了LibGdx。在下面的方法中,我傳遞了RED_BALL,但該方法沒有返回true。我想知道紋理比較是否可行。如果是的話,最好的辦法是什麼。如何比較LibGdx中的紋理

private boolean isSqueezableBalls(Texture t) { 
    if(t.equals(RED_BALL) || 
      t.equals(BLUE_BALL) || 
       t.equals(GREEN_BALL)){ 
     return true; 
    } 
    return false; 
} 
+1

紋理是資源,你可能希望參考它們進行比較。順便說一句,你可能不想使用靜態資源,你可能想要將多個圖像打包成單個紋理,並直接使用TextureRegion而不是Texture。 – Xoppa 2015-02-08 19:39:23

+0

Texture類不會覆蓋'.equals',所以你可以使用'=='。它只是測試相同的參考。 – Tenfour04 2015-02-08 23:17:30

回答

0

你需要做的是開發更多的OOP編碼habbit。 然後你可以添加一個紋理到一個類,當你需要比較它時不會有問題。您稍後可以簡單地檢查實例。

class Ball { 
     // Ball Data 

     public Ball() { 
      // ADD LOGIC 
     } 
    } 

    class GreenBall extends Ball { 

     public GreenBall() { 
      super(); 
      // ADD LOGIC 
     } 
    } 

    class RedBall extends Ball { 

     public RedBall() { 
      super(); 
      //ADD LOGIC 
     } 

所以,你可以有這樣的方法:

private void isSquizableBall(Ball b) { 
    if(b instanceof GreenBall){ 
     System.out.print("It's a green ball"); 

    } else if(b instanceof RedBall){ 
     System.out.print("It's a green ball"); 
    } 
}