我开始学习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位数颜色?
谢谢!
答案 0 :(得分:1)
他正在使用int
颜色表示
每种颜色由4个值表示,每个值为8位:
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;
}