我有三个项目
- 游戏 - Java 项目
- GameAndroid - 安卓
- GameDesktop - Java 项目
我想访问android.graphics.Color,但我在我的 Java 游戏项目中,所以我不能这样做。当我尝试访问Java.awt.Color insted时,我会得到java.lang.NoClassDefFoundError insted。
有没有办法访问这些库中的任何一个?
例如我想使用这种方法:
Color.getHSBColor();
我一般建议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;
}
如您所见,编码中的顺序是不同的。这是 供参考的源代码。
如果您正在寻找诸如 HSB->RGB 转换之类的东西,这可以“手动”实现。例如,请参阅此答案- 但请记住使用 libgdx 实现从 RGB 组件生成实际的 int !