java swing小遊戲 貪吃蛇大冒險

2021-07-27 20:49:39 字數 2360 閱讀 6011

之前在網上看到很多人在在找貪吃蛇原始碼,難道今天比較閒就動手寫了乙個小專案現在分享給大家。

遊戲原始碼獲取方式1:遊戲原始碼

要點:

1. 圖形的繪製

2. 貪吃蛇的移動

3. 食物的隨機分布

4. 碰撞檢測

5. 死亡檢測

一 圖形的繪製

圖形繪製使用的是imageicon裡的painticon()

方法,該方法接收三個引數:

第乙個引數是要繪製的地方,第二個引數是畫筆物件,第三個是要繪製圖形位置的x座標,第四個是要繪製圖形的y座標主要**如下:

public void paint(graphics g) else if (direction.equals("d")) else if (direction.equals("l")) else if (direction.equals("u")) 

//畫出蛇的身體

for(int i=1

;i snake.body

.painticon(this, g, snake.snakex[i], snake.snakey[i]);

}//提示文字

if(!isstarted)

//遊戲結束提示

if(isdead)

//paint score

//顯示分數

color color = g.getcolor();

g.setcolor(color.white);

font font=new font("隸書", font.bold, 20);

g.setfont(font);

score=(len-3)*5

; g.drawstring("分數:"+score, 680, 30);

g.setcolor(color);

snake.imgfood

.painticon(this, g, food.foodx, food.foody);

}

二 貪吃蛇的移動:
if(isstarted && !isdead)

//移動蛇的頭部

if(direction.equals("r"))else

if (direction.equals("d")) else

if (direction.equals("l")) else

if (direction.equals("u"))

三 食物的隨機分布食物是貪吃蛇遊戲中第二重要的,它的位置要隨機分布而不是固定的位置,這就要用到random函式了,該函式可以產生隨機數。初始化食物類的時候會對其座標進行隨機分配,當貪吃蛇將食物吃下之後會呼叫getrandomxy()方法再獲取乙個隨機位置主要**如下:

public

food()

public

void

getrandomxy()

四 碰撞檢測如何知曉貪吃蛇可以吃食物!就必須進行碰撞檢測,當貪吃蛇的頭與食物接觸,食物重新繪製,原理很簡單,雖然碰撞檢測有很多種,比如矩形碰撞,畫素檢測等。但是對於貪吃蛇這種小遊戲矩形碰撞已經足夠了。首先要用到rectangle類把貪吃蛇的頭包裝成乙個矩形,然後食物也包裝成乙個矩形,當兩個矩形有接觸時,碰撞!

rectangle類的初始化方法需要四個引數。

被包裝物體左上角x座標值

被包裝物體左上角y座標值

物體寬度

物體長度

主要**如下:

貪吃蛇包裝:

public rectangle getrect()

食物包裝:

public rectangle getrect()

碰撞檢測:

private

void

checkfood()

}

五 死亡檢測死亡檢測比較簡單,只要判斷蛇頭的座標是否大於邊界或小於邊界。當頭與身體的座標重合之後也可以判斷為死亡最主要**如下:

if(snake.snakex[0]==snake.snakex[i]&&snake.snakey[0]==snake.snakey[i])

if(snake.snakex[0]<=0||snake.snakex[0]>=775||snake.snakey[0]<=0||snake.snakey[0]>=725)

java swing 實現貪吃蛇小遊戲

if i 1 radomg jpanel.getgraphics radomg.setcolor color.red 建立乙個蛇執行緒 drawsnak snakt new drawsnak snakt.start snakg jpanel.getgraphics snakg.setcolor co...

貪吃蛇小遊戲

1 doctype html 2 html 3 head 4 title snake title 5head 6 body style text align center margih 100px background color aaaaaa 7 canvas id canv width 400 ...

C 貪吃蛇小遊戲

自學了幾天c 嘗試寫了乙個貪吃蛇小遊戲,比較詳細地做了注釋,實現 1 貪吃蛇基本功能 2 長按加速 3 計分板 xaml 及介面 namespace 貪吃蛇 新食物生成 public void newfoodgenerate 計時器每乙個計時週期內的時間處理程式 void timer tick ob...