用java編程的著名游戲,問一個(gè)java當(dāng)人游戲?
魔王與天使之淚 (這是快10年前的游戲了 當(dāng)時(shí)很好玩的,)
如何用java實(shí)現(xiàn)一個(gè)貪吃蛇小游戲?
1、設(shè)計(jì)游戲,首先就要設(shè)計(jì)界面。首先看一下我設(shè)計(jì)的一個(gè)界面。界面分為左邊的游戲區(qū)與右邊的控制區(qū)。游戲區(qū)包含“得分信息”和貪吃蛇的游戲區(qū),右邊控制區(qū)有“開始”“暫停”“停止”按鈕,等級(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)格組成,為了視覺效果,蛇身用藍(lán)色標(biāo)記,食物用紅色標(biāo)記,背景白色。如第一張圖片所示。所以,我們需要定義二維數(shù)組,保存網(wǎng)格信息,保存蛇身和食物的位置信息等。初始化時(shí),還需要添加鍵盤事件控制上下左右移動(dòng)。
4、食物的位置信息是二維的,所以我簡(jiǎn)單定義了一個(gè)類用來(lái)保存二維信息。
5、接著就是實(shí)現(xiàn)游戲的功能了。開始,暫停,停止按鈕添加事件控制游戲開始。等級(jí)按鈕定義游戲難度等。
6、開始游戲后,我們定義一個(gè)定時(shí)器。蛇身按照指定的方向移動(dòng),方向是通過(guò)初始化時(shí)添加的鍵盤事件,鍵盤的上下左右按鈕來(lái)控制。蛇身是連續(xù)的位置信息,保存到隊(duì)列中,所以蛇身的移動(dòng)就是隊(duì)首增加一個(gè)位置,隊(duì)尾減少位置,然后重新繪畫游戲區(qū)就可以了。
java編程貪吃蛇游戲的原理和用到了哪些內(nèi)容知識(shí)?
把蛇身體的每一塊看成一個(gè)對(duì)象(對(duì)象存儲(chǔ)該塊的坐標(biāo)和相關(guān)信息),作為節(jié)點(diǎn)存儲(chǔ)在線性鏈表中,再設(shè)置一個(gè)變量標(biāo)志蛇的方向(通過(guò)按鍵可以改變)。一般人都是讓每一個(gè)節(jié)點(diǎn)等于他指向的下一個(gè)節(jié)點(diǎn),并讓頭節(jié)點(diǎn)改變位置來(lái)實(shí)現(xiàn)轉(zhuǎn)彎和移動(dòng),這個(gè)算法復(fù)雜度太高(O(n)),實(shí)際上只要做兩步操作,插入一個(gè)頭節(jié)點(diǎn),刪除一個(gè)尾節(jié)點(diǎn)就可以了,新插入的頭節(jié)點(diǎn)位置根據(jù)蛇當(dāng)前的方向決定。
以上就是關(guān)于用java編程的著名游戲和問一個(gè)java當(dāng)人游戲的相關(guān)問題解答,希望對(duì)你有所幫助。