2012-05-29 77 views
2

我有三個項目LibGDX - 採用Android庫

  1. 遊戲 - Java項目
  2. GameAndroid - Android電子
  3. GameDesktop - Java項目

我要訪問android.graphics。顏色,但我在我的遊戲項目是java,所以我不能這樣做。當我嘗試訪問Java.awt.Color insted時,我會得到java.lang.NoClassDefFoundError insted。

有沒有辦法訪問任何這些庫?

例如我想用這個方法:

Color.getHSBColor(); 
+0

你可以在你使用這個類的地方加入一段代碼嗎? –

回答

4

我一般建議使用com.badlogic.gdx.graphics.Color代替。

它具有與平臺無關的優點 - 但請注意類似物之間的實施差異。

例如,比較Android的實現(AWT的相同的方式工作):

public static int argb(int alpha, int red, int green, int blue) { 
    return (alpha << 24) | (red << 16) | (green << 8) | blue; 
} 

和libgdx實現:

public static int toIntBits (int r, int g, int b, int a) { 
    return (a << 24) | (b << 16) | (g << 8) | r; 
} 

正如你所看到的,在編碼的順序是不同的。以下是source code 供參考。

如果您正在尋找像HSB-> RGB轉換之類的東西,可以「手動」實現。例如,請參閱this answer - 但請記住使用libgdx實現從RGB組件生成實際的int!

+0

是否等價於Color.getHSBColor()?我找不到它,所以我開始使用java.awt。 – jellyfication

+2

我在0.9.3源代碼中沒有看到類似的東西。但是,這可以通過一小段代碼輕鬆解決,請參閱我的回答編輯示例。 –

+0

感謝您的幫助。 – jellyfication