剛剛偶然發現了designsbyzephy在YouTube上的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
都有8位數據,但這不足以作爲我的解釋。我需要知道爲什麼我們要這樣做,爲什麼我們需要轉向左側,因爲bb
,gg
,, rr
顏色中有2^8位的數據,以及有2^8位數據意味着什麼第一個地方?
太多的問題。但是這裏有一個按位('|')運算符的解釋:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html – anthropomo 2013-02-09 21:14:05
真的,大多數關於編程的視頻教程都很吸引人。實際上,我採取了這種做法 - 大多數在線教程總的來說都不錯。這甚至不一定是因爲作者本身在編程方面不好(儘管有時也是如此),但是他們通常在解釋事情方面非常糟糕,並最終大聲朗讀他們的代碼。有時候,所討論的'教程'可以概括爲'git clone some-repo'。 – Cubic 2013-02-09 21:18:14
是的,所以從視頻學習非常令人沮喪,但我不知道任何其他方式可以學習2D遊戲編程。我已經使用了諸如zetcode之類的在線教程,並閱讀了有關該主題的書籍,但其中大多數看起來確實過時並且使用了糟糕的編程習慣。所以我非常困惑。我是否需要去學校學習遊戲編程? – GayLord 2013-02-11 17:44:18