java游戲編程基礎(chǔ),游戲編程學(xué)什么專業(yè)?
可以學(xué)C++,C#,和Java(推薦),現(xiàn)在后兩者比較主流,用的多。樓主以后想進(jìn)行游戲開(kāi)發(fā),建議學(xué)Java。
每個(gè)學(xué)校編程專業(yè)名稱不一樣,大體就是一下幾種了:
專業(yè)就是:軟件工程,計(jì)算機(jī)科學(xué)與技術(shù),信息科學(xué)與技術(shù)等等
主要課程學(xué)的就是相關(guān)編程語(yǔ)言。有的是從C開(kāi)始學(xué),第一學(xué)期C,第二學(xué)期C++,第三學(xué)期C#或者Java(每個(gè)學(xué)校不一樣,我只是舉一個(gè)例子)。還有的就是直接學(xué)高級(jí)編程語(yǔ)言,但是比較少,一般都是從基礎(chǔ)的C開(kāi)始學(xué)的。
其他課程大體就是:軟件工程,數(shù)據(jù)結(jié)構(gòu),編譯原理,數(shù)據(jù)庫(kù)原理,數(shù)據(jù)庫(kù)應(yīng)用等,有的還會(huì)學(xué)計(jì)算機(jī)導(dǎo)論,計(jì)算機(jī)基礎(chǔ),匯編語(yǔ)言,HTML什么的每個(gè)學(xué)校學(xué)的不太一樣,但是主體應(yīng)該就是這些。
沒(méi)有基礎(chǔ)的人學(xué)游戲開(kāi)發(fā)可行嗎?
我覺(jué)得沒(méi)問(wèn)題,現(xiàn)在各種游戲引擎已經(jīng)不是當(dāng)時(shí)只有專業(yè)程序員和部分極客能弄得懂得東西了,現(xiàn)在大量可視化組件和藍(lán)圖系統(tǒng),讓即使是美工人員也能開(kāi)發(fā)出不錯(cuò)的游戲。學(xué)習(xí)游戲開(kāi)發(fā)最重要的就是進(jìn)入圈子,進(jìn)入學(xué)習(xí)開(kāi)發(fā)的領(lǐng)域,跟著前輩們學(xué)習(xí)開(kāi)發(fā)的技術(shù),就算是初中生,也能做好的。你即使沒(méi)有基礎(chǔ),但是你去學(xué)習(xí)或是培訓(xùn),必然會(huì)先教你基礎(chǔ)。比如unity開(kāi)發(fā),其腳本可以用JavaScript和c#開(kāi)發(fā),那么培訓(xùn)班必然教你其中的一種,至少讓你能夠獨(dú)立寫(xiě)出簡(jiǎn)單的腳本。剩下來(lái)的就是模型的堆砌和邏輯的展開(kāi)了。這個(gè)和所謂的基礎(chǔ)沒(méi)啥關(guān)系吧。其實(shí)學(xué)習(xí)這東西,無(wú)論學(xué)什么,都貴在堅(jiān)持,而非基礎(chǔ),學(xué)任何東西,沒(méi)有人一開(kāi)始就是有基礎(chǔ)的。但是你進(jìn)入圈子了,卻不去堅(jiān)持,朝三暮四,遇到挫折就放棄,那肯定學(xué)不好。所以你想學(xué)就去學(xué),趁著這個(gè)行業(yè)還有利可圖,盡早進(jìn)入圈子。就這樣。
想用Java做游戲?
1
設(shè)計(jì)游戲,首先就要設(shè)計(jì)界面。首先看一下我設(shè)計(jì)的一個(gè)界面。界面分為左邊的游戲區(qū)與右邊的控制區(qū)。游戲區(qū)包含“得分信息”和貪吃蛇的游戲區(qū),右邊控制區(qū)有“開(kāi)始”“暫停”“停止”按鈕,等級(jí)選擇單選框以及游戲排行榜。2
所以我們需要定義swing組件,并在類初始化時(shí)初始化這些組件,添加組件。因?yàn)楹竺嬖O(shè)計(jì)游戲的時(shí)候,我們要確切知道游戲區(qū)的大小,所以這里設(shè)置游戲區(qū)固定大小值。本來(lái)想用布局來(lái)更好的管理,但作者對(duì)布局也掌握不夠,所以就先設(shè)置固定大小吧。
3
定義我們的游戲。貪吃蛇游戲其實(shí)就是包含很多細(xì)小網(wǎng)格,然后蛇在網(wǎng)格中移動(dòng)。蛇由一連串的網(wǎng)格組成,為了視覺(jué)效果,蛇身用藍(lán)色標(biāo)記,食物用紅色標(biāo)記,背景白色。如第一張圖片所示。所以,我們需要定義二維數(shù)組,保存網(wǎng)格信息,保存蛇身和食物的位置信息等。初始化時(shí),還需要添加鍵盤(pán)事件控制上下左右移動(dòng)。
4
食物的位置信息是二維的,所以我簡(jiǎn)單定義了一個(gè)類用來(lái)保存二維信息。
5
接著就是實(shí)現(xiàn)游戲的功能了。開(kāi)始,暫停,停止按鈕添加事件控制游戲開(kāi)始。等級(jí)按鈕定義游戲難度等。
6
開(kāi)始游戲后,我們定義一個(gè)定時(shí)器。蛇身按照指定的方向移動(dòng),方向是通過(guò)初始化時(shí)添加的鍵盤(pán)事件,鍵盤(pán)的上下左右按鈕來(lái)控制。蛇身是連續(xù)的位置信息,保存到隊(duì)列中,所以蛇身的移動(dòng)就是隊(duì)首增加一個(gè)位置,隊(duì)尾減少位置,然后重新繪畫(huà)游戲區(qū)就可以了。
在蛇身移動(dòng)時(shí)進(jìn)一步做吃掉食物、撞墻、撞到自己的處理。這是游戲的主要邏輯。
7
最后,游戲結(jié)束我們彈出一個(gè)對(duì)話框提示是否保存游戲得分。我們制作了排行榜信息,只保留前10名的游戲得分。首先定義了一個(gè)實(shí)現(xiàn)Comparable接口的游戲得分類,按得分高,時(shí)間最早來(lái)排序。
8
游戲結(jié)束時(shí)保存得分信息,看是否進(jìn)入到排行榜中。而之前在初始化排行榜組件時(shí)就會(huì)加載游戲排行榜信息。
通過(guò)保存和讀取排行榜信息,我們也熟悉一下文件讀取操作,還有集合、排序算法的功能。
9
最后編譯運(yùn)行,結(jié)果良好。經(jīng)驗(yàn)也只能寫(xiě)一個(gè)大概的設(shè)計(jì),貪吃蛇游戲功能實(shí)際是比較簡(jiǎn)單的,主要就是界面的布局,swing編程等。如果有任何疑問(wèn),歡迎大家留言。
總之,沒(méi)有一技之長(zhǎng)或者經(jīng)過(guò)訓(xùn)練,還是不要有這個(gè)想法了,不切合實(shí)際。
并且,游戲做好之后,還需要經(jīng)過(guò)一系列的游戲認(rèn)證,審核。
在小范圍內(nèi)可以傳播,但如果沒(méi)有通過(guò)的話,就不可以在大范圍內(nèi)傳播。
如果我的回答對(duì)你有幫助,點(diǎn)個(gè)贊再走唄~
以上就是關(guān)于java游戲編程基礎(chǔ)和游戲編程學(xué)什么專業(yè)的相關(guān)問(wèn)題解答,希望對(duì)你有所幫助。