日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java實現簡單的貪吃蛇游戲

瀏覽:82日期:2022-08-09 09:35:06

本文實例為大家分享了Java實現簡單貪吃蛇游戲的具體代碼,供大家參考,具體內容如下

代碼

啟動類

package snake;import javax.swing.*;//游戲的主啟動類public class StartGame { public static void main(String[] args) {JFrame frame = new JFrame('貪吃蛇');frame.setBounds(10,10,900,720);frame.setResizable(false); //窗口不可調整frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//正常游戲界面都應該在面板上frame.add(new GamePanel());frame.setVisible(true); }}

游戲畫板

package snake;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;//游戲面板public class GamePanel extends JPanel implements KeyListener, ActionListener { int lenth; //蛇的長度 int [] snakeX = new int[600]; //定義蛇的坐標X int [] snakeY = new int[500]; //定義蛇的坐標Y String fx ;//定義方向R:右 L:左 U:上 D:下 boolean isStart = false; //游戲是否開始 Timer timer = new Timer(120,this);//定時器 //定義一個食物 int foodx; int foody; Random random = new Random(); //定義死亡判斷 boolean isFail = false;//默認不失敗 //積分系統 int score; //構造器 public GamePanel(){init();//獲取鍵盤的監聽事件this.setFocusable(true);this.addKeyListener(this);timer.start(); } //初始化 public void init(){lenth = 3;snakeX[0] = 100;snakeY[0] = 100;//頭部坐標snakeX[1] = 75;snakeY[1] = 100;//第一個身體坐標snakeX[2] = 50;snakeY[2] = 100;//第二個身體坐標fx = 'R';//蛇頭初始方向//初始化食物foodx = 25 + 25 * random.nextInt(34);foody = 75 + 25 * random.nextInt(24);score = 0; } //繪制面板,游戲中的所以東西都使用這個東西來畫 @Override protected void paintComponent(Graphics g) {super.paintComponent(g); //清屏作用//繪制靜態的面板this.setBackground(Color.white);Data.header.paintIcon(this,g,25,11);//放進頭部廣告g.fillRect(25,75,850,600);//默認游戲界面//畫一條靜態的小蛇if (fx.equals('R')){ Data.right.paintIcon(this,g,snakeX[0],snakeY[0]);}else if (fx.equals('L')){ Data.left.paintIcon(this,g,snakeX[0],snakeY[0]);}else if (fx.equals('U')){ Data.up.paintIcon(this,g,snakeX[0],snakeY[0]);}else if (fx.equals('D')){ Data.down.paintIcon(this,g,snakeX[0],snakeY[0]);}//蛇的身體長度通過length來控制for (int i = 1;i < lenth;i++){ Data.body.paintIcon(this,g,snakeX[i],snakeY[i]);}//畫積分g.setColor(Color.white);g.setFont(new Font('微軟雅黑',Font.BOLD,20));g.drawString('長度'+lenth,700,45);g.drawString('分數'+score,780,45);//畫食物Data.food.paintIcon(this,g,foodx,foody);//游戲提示:是否開始if (isStart == false){ //畫一個文字String來提示開始 g.setColor(Color.white); //定義顏色 g.setFont(new Font('微軟雅黑',Font.BOLD,40)); //設置字體 g.drawString('按下空格開始游戲',300,300);}//失敗提醒if (isFail){ //畫一個文字String來提示失敗 g.setColor(Color.RED); //定義顏色 g.setFont(new Font('微軟雅黑',Font.BOLD,40)); //設置字體 g.drawString('游戲失敗,按下空格重新開始',200,300);} }//接收鍵盤的輸入:監聽事件 @Override//鍵盤按下,未釋放 public void keyPressed(KeyEvent e) {//獲取按下鍵盤的信息int keyCode = e.getKeyCode();if(keyCode==KeyEvent.VK_SPACE){//如果按下空格鍵 if (isFail){//游戲失敗,重新開始isFail = false;init();//重新初始化游戲 }else {//暫停游戲isStart = !isStart; } repaint();//刷新界面,重置}//鍵盤控制走向if (keyCode==KeyEvent.VK_LEFT){ fx = 'L';}else if (keyCode==KeyEvent.VK_RIGHT){ fx = 'R';}else if (keyCode==KeyEvent.VK_UP) { fx = 'U';}else if (keyCode==KeyEvent.VK_DOWN) { fx = 'D';} } //定時器,監聽時間,幀,執行定時操作 @Override public void actionPerformed(ActionEvent e) {//如果游戲處于開始狀態,并且游戲沒有失敗if (isStart && isFail == false){ //右移 for (int i = lenth-1 ;i > 0;i--){ //身體向前移動snakeX[i] = snakeX[i-1];snakeY[i] = snakeY[i-1]; } //通過控制方向讓頭部移動 if (fx.equals('R')){snakeX[0] = snakeX[0] + 25;//頭部移動if (snakeX[0]>850){ snakeX[0] = 25; }//右邊界判斷 }else if (fx.equals('L')){snakeX[0] =snakeX[0] - 25;//頭部移動if (snakeX[0]<25){ snakeX[0] = 850;}//左邊界判斷 }else if (fx.equals('U')){snakeY[0] =snakeY[0] - 25;//頭部移動if (snakeY[0]<75){ snakeY[0] = 650;}//上邊界判斷 }else if (fx.equals('D')){snakeY[0] =snakeY[0] + 25;//頭部移動if (snakeY[0]>650){ snakeY[0] = 75;}//下邊界判斷 } //如果食物和蛇頭坐標重合 if (snakeX[0]==foodx && snakeY[0]==foody){lenth ++;//蛇的身體長度加一score = score + 10;//重新生成食物foodx = 25 +25 * random.nextInt(34);foody = 75 +25 * random.nextInt(24); } //結束判斷 for (int i = 1; i<lenth;i++){if (snakeX[0]==snakeX[i] && snakeY[0]==snakeY[i]){ isFail = true;} } repaint();//刷新界面}timer.start();//讓時間動起來 } @Override//鍵盤按下,彈起 public void keyTyped(KeyEvent e) { } @Override//釋放某個鍵 public void keyReleased(KeyEvent e) { }}

游戲數據(存放圖片)

package snake;import javax.swing.*;import java.net.URL;//數據中心public class Data { //相對路徑 tx.jpg 絕對路徑 /相當于當前的項目 //頭部圖片 URL 定位圖片地址 public static URL headerURL = Data.class.getResource('/statics/header.png'); public static ImageIcon header = new ImageIcon(headerURL); //上下左右移動 public static URL upUrl = Data.class.getResource('/statics/up.png'); public static ImageIcon up = new ImageIcon(upUrl); public static URL downUrl = Data.class.getResource('/statics/down.png'); public static ImageIcon down = new ImageIcon(downUrl); public static URL leftUrl = Data.class.getResource('/statics/left.png'); public static ImageIcon left = new ImageIcon(leftUrl); public static URL rightUrl = Data.class.getResource('/statics/right.png'); public static ImageIcon right = new ImageIcon(rightUrl); //身體 public static URL bodyUrl = Data.class.getResource('/statics/body.png'); public static ImageIcon body = new ImageIcon(bodyUrl); //食物 public static URL foodUrl = Data.class.getResource('/statics/food.png'); public static ImageIcon food = new ImageIcon(foodUrl);}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩在线二区| 欧美久久香蕉| 国产一区二区三区亚洲综合| 久久精品72免费观看| 青青伊人久久| 国产高清日韩| 中文在线а√天堂| 国产精品黑丝在线播放| 日本一二区不卡| 欧美日韩一区二区综合| 免播放器亚洲| 国产精品99久久久久久董美香| 国模精品一区| 国产亚洲欧洲| 国产精品最新| 欧美肉体xxxx裸体137大胆| 老牛国产精品一区的观看方式| 日韩国产成人精品| 日本美女一区| 日本a口亚洲| 91一区二区| 日韩黄色免费网站| 精品久久不卡| 亚久久调教视频| 91综合网人人| 日本色综合中文字幕| 日韩免费视频| 国产精品高清一区二区| 99xxxx成人网| 国产一区二区三区四区五区| 香蕉久久久久久久av网站| 国产成人免费| 国产探花一区| 色综合视频一区二区三区日韩| 神马午夜在线视频| 国产精品久久久久久久久久妞妞| 91精品91| 成人午夜亚洲| 欧美在线不卡| 亚洲婷婷丁香| 伊人成人网在线看| 欧美一级鲁丝片| 麻豆成人91精品二区三区| 亚洲精品日本| 美女精品在线观看| 999国产精品| 美女福利一区二区三区| 免费亚洲一区| 国产精品久久久久久久久久齐齐 | 亚洲欧美日韩国产一区二区| 日本免费一区二区三区四区| 麻豆国产精品| 精品久久影院| 91亚洲国产| 成人日韩在线观看| 日韩伦理一区| 美女毛片一区二区三区四区| 九色porny丨国产首页在线| 日韩精品不卡一区二区| 91偷拍一区二区三区精品| 精品一区二区三区的国产在线观看| 国产精品一区二区中文字幕| 国产三级精品三级在线观看国产| 久久久人人人| 夜久久久久久| 亚洲精品成人一区| 91九色综合| 国产精品一区二区美女视频免费看| 日韩高清不卡在线| 久久久国产精品入口麻豆| 国内精品美女在线观看| 四虎4545www国产精品| 99精品视频精品精品视频| 免费看的黄色欧美网站| 日本免费一区二区视频| 久久伊人亚洲| 久久蜜桃av| 深夜福利一区| 国产无遮挡裸体免费久久| 精品国产免费人成网站| 好看的av在线不卡观看| 日本成人手机在线| 青青青免费在线视频| 首页亚洲欧美制服丝腿| 国产精品欧美在线观看| 桃色一区二区| 日本伊人久久| 天堂网av成人| 日韩精品视频在线看| 麻豆mv在线观看| 蜜桃久久av一区| 福利精品一区| 日韩中文字幕视频网| 国产福利亚洲| 亚洲精品影视| 欧美~级网站不卡| 国产乱码精品| 视频一区二区三区中文字幕| 四虎成人av| 欧美天堂一区| 久久xxxx精品视频| 精品日韩视频| 久久精品国产999大香线蕉| 日韩在线卡一卡二| 久久一区二区三区电影| 精品欧美日韩精品| 日本成人一区二区| 蜜桃视频在线观看一区二区| 高清一区二区| 美女视频黄免费的久久| 欧美日本一区| 日韩在线成人| 综合激情视频| 日韩影院免费视频| 鲁大师影院一区二区三区| 亚洲v在线看| 深夜视频一区二区| 亚洲深夜视频| 蜜桃视频在线网站| 亚洲成a人片| 五月激情久久| 欧美亚洲精品在线| 久久久久蜜桃| 日韩欧美另类一区二区| 日韩国产专区| 成人免费网站www网站高清| 91综合视频| 久久精品成人| japanese国产精品| 国产亚洲网站| 日韩国产在线观看| 国产精品黄色| 欧美成a人免费观看久久| 欧美精品一二| 免费欧美在线视频| 日韩三级一区| 激情久久一区二区| 欧美午夜精品一区二区三区电影| 色老板在线视频一区二区| 亚洲国产日韩欧美在线| 伊人久久大香伊蕉在人线观看热v| 亚洲日本欧美| 精品伊人久久| 欧美精选一区二区三区| 日本亚洲视频在线| 国产精品国产三级国产在线观看| 亚洲手机视频| 综合欧美精品| 中文在线免费视频| 伊人精品久久| 高清av一区| 视频一区日韩| 亚洲女同av| 久久国产精品亚洲77777| 国产亚洲精品精品国产亚洲综合| 日产精品一区二区| 西西人体一区二区| 国产精品99一区二区三区| 一本一道久久a久久精品蜜桃| 777久久精品| 午夜欧美视频| 亚洲三级欧美| 久久国产三级| 国产一区导航| 欧美激情另类| 国产精品天天看天天狠| 天堂网在线观看国产精品| 日韩av黄色在线| 欧美日韩在线二区| 美腿丝袜在线亚洲一区| 综合国产精品| 在线亚洲免费| 蜜臀91精品国产高清在线观看| 欧美亚洲福利| 亚洲精品成人一区| 亚洲在线一区| 午夜欧美理论片| 亚洲国产一区二区在线观看 | 日本精品国产| 综合一区二区三区| 丝袜美腿亚洲一区| 亚洲专区欧美专区| 在线视频精品| 日韩午夜av| av不卡在线看| 久久不射网站| 国产毛片一区| 蜜臀精品久久久久久蜜臀| 成人午夜国产| 久久久久免费av| 亚洲成人精品| 欧美a级片一区| 中文日韩欧美| 亚洲二区免费| 日韩欧美国产精品综合嫩v| 手机在线电影一区| 亚洲h色精品| 手机精品视频在线观看| 美女网站一区| 伊人久久亚洲|