真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java如何實(shí)現(xiàn)貪吃蛇游戲

這篇文章主要介紹Java如何實(shí)現(xiàn)貪吃蛇游戲,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括張家港網(wǎng)站建設(shè)、張家港網(wǎng)站制作、張家港網(wǎng)頁制作以及張家港網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,張家港網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到張家港省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

很認(rèn)真的寫的一個java版的貪吃蛇游戲,圖形界面,支持菜單操作,鍵盤監(jiān)聽,可加速,減速,統(tǒng)計得分,設(shè)定運(yùn)動速度,設(shè)定游戲背景顏色等!應(yīng)該沒有Bug了,因?yàn)槿晃倚薷臎]了。

下面是項(xiàng)目各包及類的層次關(guān)系:

Java如何實(shí)現(xiàn)貪吃蛇游戲

游戲的主要運(yùn)行界面截圖如下:

Java如何實(shí)現(xiàn)貪吃蛇游戲

Java如何實(shí)現(xiàn)貪吃蛇游戲

下面是部分代碼,詳細(xì)源碼見此鏈接:貪吃蛇源碼下載

Snake類:

package com.huowolf.entities; 
 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Point; 
import java.util.HashSet; 
import java.util.LinkedList; 
import java.util.Set; 
 
import com.huowolf.listener.SnakeListener; 
import com.huowolf.util.Global; 
 
 
public class Snake { 
 
 //代表方向的常量 
 public static final int UP = 1; 
 public static final int DOWN = -1; 
 public static final int LEFT = 2; 
 public static final int RIGHT = -2; 
 
 //監(jiān)聽器組 
 private Set listeners = new HashSet(); 
 //存儲蛇的鏈表結(jié)構(gòu) 
 private LinkedList body = new LinkedList(); 
 
 private boolean life;  //是否活著 
 private boolean pause;  //是否暫停游戲 
 private int oldDirection,newDirection; //新,舊方向的引入(避免一次移動時間內(nèi)的無效方向) 
 private Point oldTail;  //舊的尾巴(在吃掉食物的時候使用) 
 private int foodCount = 0; //吃掉食物的數(shù)量 
 private Color headColor; 
 private Color bodyColor; 
 private int sleepTime; 
 
 public boolean isLife() { 
 return life; 
 } 
 public int getSleepTime() { 
 return sleepTime; 
 } 
 
 public void setSleepTime(int sleepTime) { 
 this.sleepTime = sleepTime; 
 } 
 
 
 public void setHeadColor(Color headColor) { 
 this.headColor = headColor; 
 } 
 
 
 public void setBodyColor(Color bodyColor) { 
 this.bodyColor = bodyColor; 
 } 
 
 
 public void init() { 
 int x = Global.WIDTH/2; 
 int y = Global.HEIGHT/2; 
 for(int i=0;i<3;i++) { 
 body.addLast(new Point(x--,y)); 
 } 
 
 oldDirection = newDirection = RIGHT; 
 foodCount = 0; 
 life = true; 
 pause = false; 
 
 if(sleepTime==0) { 
 sleepTime = 300; 
 } 
 } 
 
 //清空蛇的節(jié)點(diǎn)的方法(用來開始一次新的游戲) 
 public void clear() { 
 body.clear(); 
 } 
 
 
 public void setLife(boolean life) { 
 this.life = life; 
 } 
 
 
 public boolean getPause() { 
 return pause; 
 } 
 
 public void setPause(boolean pause) { 
 this.pause = pause; 
 } 
 
 
 //用來改變pause常量的狀態(tài) 
 public void changePause() { 
 pause = !pause; 
 } 
 
 
 //蛇死掉的方法 
 public void die() { 
 life = false; 
 } 
 
 //蛇移動的方法 
 public void move() { 
 if(!(oldDirection + newDirection==0)) { 
 oldDirection = newDirection ; 
 } 
 
 //去尾 
 oldTail = body.removeLast(); 
 int x = body.getFirst().x; 
 int y = body.getFirst().y; 
 
 switch(oldDirection) { 
 case UP: 
 y--; 
 if(y<0) { 
  y = Global.HEIGHT -1 ; 
 } 
 break; 
 case DOWN: 
 y++; 
 if(y >= Global.HEIGHT) { 
  y = 0; 
 } 
 break; 
 case LEFT: 
 x--; 
 if(x<0) { 
  x = Global.WIDTH-1; 
 } 
 break; 
 case RIGHT: 
 x++; 
 if(x >= Global.WIDTH) { 
  x = 0; 
 } 
 break; 
 } 
 
 Point newHead = new Point(x, y); 
 //加頭 
 body.addFirst(newHead); 
 } 
 
 //改變方向 
 public void changeDirection(int direction) { 
 newDirection = direction; 
 } 
 
 
 //吃食物 
 public void eatFood() { 
 body.addLast(oldTail); 
 foodCount++; 
 } 
 
 //獲取吃到的食物數(shù)量 
 public int getFoodCount() { 
 return foodCount; 
 } 
 
 
 //蛇是否吃到了自己的身體 
 public boolean isEatBody() { 
 for(int i=1;i50) { 
 sleepTime-=20; 
 } 
 } 
 
 //減速 
 public void speedDown() { 
 if(sleepTime<700) { 
 sleepTime+=20; 
 } 
 } 
 
}

Food類:

package com.huowolf.entities; 
 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Point; 
 
import com.huowolf.util.Global; 
 
 
public class Food extends Point{ 
 
 private static final long serialVersionUID = 1L; 
 
 private Color foodColor; 
 
 
 public void setFoodColor(Color foodColor) { 
 this.foodColor = foodColor; 
 } 
 
 public Color getFoodColor() { 
 return foodColor; 
 } 
 
 public void newFood(Point p) { 
 setLocation(p); 
 } 
 
 public boolean isFoodEated(Snake snake) { 
 return this.equals(snake.getHead()); 
 } 
 
 public void drawMe(Graphics g) { 
 if(foodColor==null) { 
 g.setColor(Color.RED); 
 }else { 
 g.setColor(foodColor); 
 } 
 
 g.fill3DRect(x*Global.CELL_SIZE, y*Global.CELL_SIZE, Global.CELL_SIZE, Global.CELL_SIZE, true); 
 } 
}

Ground類

package com.huowolf.entities; 
 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Point; 
import java.util.Random; 
 
import com.huowolf.util.Global; 
 
public class Ground { 
 private boolean [][] rocks = new boolean[Global.WIDTH][Global.HEIGHT]; 
 private int mapType = 1; 
 
 
 
 public int getMapType() { 
 return mapType; 
 } 
 
 public void setMapType(int mapType) { 
 this.mapType = mapType; 
 } 
 
 
 //初始化地面(清空石頭) 
 public void clear() { 
 for (int x = 0; x < Global.WIDTH; x++) 
 for (int y = 0; y < Global.HEIGHT; y++) 
 rocks[x][y] = false; 
 } 
 
 /** 
 * 產(chǎn)生石頭 
 */ 
 public void generateRocks1() { 
 for (int x = 0; x < Global.WIDTH; x++) 
 rocks[x][0] = rocks[x][Global.HEIGHT - 1] = true; 
 for (int y = 0; y < Global.HEIGHT; y++) 
 rocks[0][y] = rocks[Global.WIDTH - 1][y] = true; 
 } 
 
 
 public void generateRocks2() { 
 
 for (int y = 0; y < 6; y++) { 
 rocks[0][y] = true; 
 rocks[Global.WIDTH - 1][y] = true; 
 rocks[0][Global.HEIGHT - 1 - y] = true; 
 rocks[Global.WIDTH - 1][Global.HEIGHT - 1 - y] = true; 
 } 
 for (int y = 6; y < Global.HEIGHT - 6; y++) { 
 rocks[6][y] = true; 
 rocks[Global.WIDTH - 7][y] = true; 
 } 
 } 
 
 
 public void generateRocks3() { 
 for(int x=4;x<14;x++) 
 rocks[x][5] = true; 
 for(int j=5;j<15;j++) 
 rocks[21][j] = true; 
 for(int y=13;y<20;y++) 
 rocks[14][y] = true; 
 for(int x=2;x<10;x++) 
 rocks[x][17] = true; 
 for(int i=10;i

以上是“Java如何實(shí)現(xiàn)貪吃蛇游戲”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享文章:Java如何實(shí)現(xiàn)貪吃蛇游戲
文章源于:http://weahome.cn/article/jseohp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部