當前位置:遊戲中心平台 - 遊戲盒子 - 誰有java遊戲源碼,給我發過來‘?

誰有java遊戲源碼,給我發過來‘?

註意:源代碼僅供個人作學習研究時的參考,不得在程序制作中直接抄錄。

源代碼壹***兩個文件:Mine.java,MGame.java,另外還有壹些圖片。

在JBuilder下建立壹個新的工程,將兩個源文件復制到工程目錄下的src\mine目錄中,將所有圖片復制到src\images目錄中就可以了。

要點分析

數據結構

首先要說明壹下用來存放地雷信息的數組grid。

grid是壹個二維數組,第壹位對應表格的行,第二位對應表格的列,比如grid[y][x]表示第y行第x列。每個字節的含義分三段:0-9表示已經挖開;10-19表示仍然埋藏;20-29表示做了標記。每段中:0-8表示周圍的地雷數量;9表示是地雷。

newGame()函數

這是用於開始壹個新遊戲的。

由於每次地雷的埋放地是隨機的,應次開始新遊戲之前先要生成新的地雷信息。

第壹步是初始化grid,將所有內容都置成10,因為壹開始所有格子都是埋藏的。

for(i=0;i<Height; i++)

{

for(j=0; j<Width; j++)

grid[j] = 10;

}

第二步是隨機產生地雷。當然了,已經產生過地雷的地方要避開。

for(i=0; i<MINECOUNT; i++)

{

while(true)

{

x = Math.abs(rand.nextInt()) % Width;

y = Math.abs(rand.nextInt()) % Height;

if (grid[y][x] != 19)

{

grid[y][x] = 19;

break;

}

}

}

最後就是無雷處計算周圍的雷數了。怎麽計算?壹個壹個加就是了。

挖雷與做標記

在看壹下按鍵響應函數keyPressed(int kcode),按1鍵是挖開動作。

前半部分表示如果當前焦點在壹個埋藏格(值介於10到19之間),那麽將其值減10,表示現在挖開。當然如果地下不是雷而且周圍沒有雷(值等於0)那麽需要自動展開,這裏調用了Expand(),(selx,sely)是當前焦點的表格坐標。

後半部分表示如果當前焦點在壹個已經挖開的格子上(值小於10),那麽就調用SafeExp()來自動挖開周圍未挖的格子。

按3鍵是做標記動作。如果當前格是埋藏格,就做上標記(值加10);如果當前格已經做了標記,那麽就去掉標記(值減10)。

自動展開

Expand()是壹個嵌套函數,他的作用是將周圍不含地雷的格子周圍全部挖開,如果挖開的部分中也有周圍不含地雷的格子,那麽對那些格子也重復前面的操作,直到把相關的格子都挖開。挖的順序是左上、上、右上、左、右、左下、下、右下,如果遇到壹個周圍不含地雷的格子(值為0)那麽馬上嵌套調用Expand()對那個格子進行處理。

SafeExp()是壹個自動挖開周圍未挖格子的函數。當然要實現這個功能是有條件的,就是周圍做了標記的格子數量必須等於當前格所標的數字,也就是說玩家把周圍所有的地雷都標記了(不管是否標錯)。函數中第壹個部分就是做以上條件的判斷。

第二部分是把周圍埋藏的格子挖開。但是由於玩家的錯誤可能標記了沒有地雷的格子,而把有地雷的格子漏標了,所以先要檢查壹下沒做標而有地雷的格子和做錯標記的格子。如果沒有這些錯誤,那麽可以安全的翻開了,同時也要檢查是否挖到周圍不含雷的格子,有的話就要調用Expand()了。

SafeExp()的返回值表示是否引爆了地雷,就是標記錯誤,true表示是,false表示否。這主要用於判斷這次遊戲是否要結束。

類介紹

圖像緩存 ExtendedImage

ExtendedImage是Siemens自己擴展的壹個專用類,只在Siemens的Java中存在。

這個類主要是用做圖像的緩存。大家不知道還有沒有印象,以前在PC上編程的時候由於顯示的速度比較慢,往往會開壹片顯示緩存,先把要現實的內容畫到這片緩存中,全部畫好後再壹次性顯示出來,ExtendedImage類就起到了這個作用。其實Java本身的Image類也可以實現類似的功能,但是顯示速度好象不如人意,而且ExtendedImage更好用,所以我基本上都采用這個類。當然這對通用性是不利的。

ExtendImage的主要函數有:

void clear(byte color);

用給定的顏色填充整個圖形區域。

void blitToScreen(int x, int y);

將緩存內容貼到顯示屏上,(x,y)是屏幕左上角坐標。

Image getImage();

返回壹個標準的Image類。可以通過ExtendImage.getImage().getGraphics()得到與其相關的Graphics對象,用來往ExtendImage上面畫圖。

  • 上一篇:最尷尬的遊戲2第59關
  • 下一篇:A14芯片、8.4英寸屏幕、Type-C接口,iPad mini6才是真遊戲機?
  • copyright 2024遊戲中心平台