3位数字代码Java

时间:2014-08-31 10:57:57

标签: java colors youtube

我开始学习java游戏编程,我是通过观看YouTube上的一个人解释Notch的代码来完成的,所以我需要有关此视频的帮助:

https://www.youtube.com/watch?v=7eotyB7oNHE&list=PL8CAB66181A502179&index=5

他在游戏中实现了颜色,我也是如此,但我不明白它们是如何工作的。他在colors类中创建了一个函数,它被称为:

Colours.get(colour1, colour2, colour3, colour4);

他正在使用spritesheet来做这件事,他将用“colour1”代替黑色,用“colour2”代替深灰色,用“colour3”代替浅灰色,用“colour4”代替白色。 问题是我不明白以下内容:如何在不使用字母的情况下获得3位数颜色?

谢谢!

1 个答案:

答案 0 :(得分:1)

他正在使用int颜色表示 每种颜色由4个值表示,每个值为8位:

  • 红色值
  • 绿色价值
  • 蓝色值
  • Alpha值

int表示将这些8位值打包成一个32位int数字,以便alpha值获得最高位,然后是红色值,然后是绿色,最后是蓝色值获得最低位。因此,使用逐位操作,您可以按如下方式从颜色分量值中创建int值:

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