刚刚在 YouTube 上偶然发现了 designsbyzephy 的 2d 游戏开发视频系列,并决定学习和理解视频中的代码将是我的下一个 Java 学习冒险。
最大的障碍是试图自己破译代码,因为视频制作者有一种令人难以置信的新手不友好的方式来解释一切。
所以这是我的问题和视频
视频:http ://www.youtube.com/watch?v=7eotyB7oNHE
5:31,他输入代码
int index = 0;
for (int r = 0; r < 6; r++){
for (int g = 0; g < 6; g++){
for (int b = 0; b < 6; b++){
int rr = (r * 255/5);
int gg = (g * 255/5);
int bb = (b * 255/5);
colors[index++] = rr << 16 | gg << 8 | bb;
}
}
}
colors[index++] = rr << 16 | gg << 8 | bb;
据我了解,他正在用每种颜色的 6 种色调创建的所有组合填充数组,但我不明白|
符号代表什么。他在视频中提到他在之前的视频中谈到过它,但他没有,我检查过,我确信他误解了他的解释&
,|
因为他确实触及&
了一点操作,但从未|
提及他以前的任何视频。我不明白的另一件事是为什么我们要改变颜色。他在视频中解释了它,但对我来说仍然没有意义。基本上他所说的只是我们改变它,因为bb
, gg
, 和rr
都有 2 和 8 位数据,但这不足以作为我的解释。我需要知道我们为什么要这样做,为什么我们需要向左移动只是因为bb
, gg
,rr
颜色中有 2^8 位的数据,以及首先有 2^8 位的数据意味着什么?