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

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

Java實現貪吃蛇游戲源碼

瀏覽:16日期:2022-08-20 16:57:37

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

1.StartGame

package com.qiang.snake;import javax.swing.*;//游戲的主啟動類public class StartGame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setResizable(false); //窗口大小不可變 frame.setBounds(10,10,900,720); frame.add(new GamePanel()); frame.setVisible(true); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); }}

2.Data

package com.qiang.snake;import javax.swing.*;import java.net.URL;//數據中心public class Data { public static URL headerURL = Data.class.getResource('/statics/header.png'); public static URL upURL = Data.class.getResource('/statics/up.png'); public static URL downURL = Data.class.getResource('/statics/down.png'); public static URL leftURL = Data.class.getResource('/statics/left.png'); public static URL rightURL = Data.class.getResource('/statics/right.png'); public static URL bodyURL = Data.class.getResource('/statics/body.png'); public static URL foodURL = Data.class.getResource('/statics/food.png'); public static ImageIcon header = new ImageIcon(headerURL); public static ImageIcon up = new ImageIcon(upURL); public static ImageIcon down = new ImageIcon(downURL); public static ImageIcon left = new ImageIcon(leftURL); public static ImageIcon right = new ImageIcon(rightURL); public static ImageIcon body = new ImageIcon(bodyURL); public static ImageIcon food = new ImageIcon(foodURL);}

3.GamePanel

package com.qiang.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'; //蛇的方向 : R:右 L:左 U:上 D:下 boolean isStart = false; //游戲是否開始 Timer timer = new Timer(100, 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; //初始化食物數據 foodx = 25 + 25* random.nextInt(34); foody = 75 + 25* random.nextInt(24); score = 0; //初始化游戲分數 } //畫組件 @Override public 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]); } for (int i = 1; i < lenth; i++) { Data.body.paintIcon(this,g,snakeX[i],snakeY[i]); //蛇的身體長度根據lenth來控制 } //畫食物 Data.food.paintIcon(this,g,foodx,foody); g.setColor(Color.white); g.setFont(new Font('微軟雅黑',Font.BOLD,18)); g.drawString('長度 ' + lenth,750,35); g.drawString('分數 ' + score,750,50); //游戲提示 if (isStart==false){ g.setColor(Color.white); g.setFont(new Font('微軟雅黑',Font.BOLD,40)); g.drawString('按下空格開始游戲!',300,300); } //失敗判斷 if (isFail){ g.setColor(Color.RED); g.setFont(new Font('微軟雅黑',Font.BOLD,40)); g.drawString('失敗, 按下空格重新開始',200,300); } } @Override public void keyTyped(KeyEvent e) { } //鍵盤監聽事件 @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 keyReleased(KeyEvent e) { } //定時執行的操作 @Override public void actionPerformed(ActionEvent e) { //如果游戲處于開始狀態,并且沒有結束,則小蛇可以移動 if (isStart && isFail==false){ //右移:即讓后一個移到前一個的位置即可 ! for (int i = lenth-1; i > 0; i--) { //除了腦袋都往前移:身體移動 snakeX[i] = snakeX[i-1]; //即第i節(后一節)的位置變為(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){ //1.長度加一 lenth++; //每吃一個食物,增加積分 score = score + 10; //2.重新生成食物 foodx = 25 + 25* random.nextInt(34); foody = 75 + 25* random.nextInt(24); } //結束判斷,頭和身體撞到了 for (int i = 1; i < lenth; i++) { //如果頭和身體碰撞,那就說明游戲失敗 if (snakeX[i]==snakeX[0] && snakeY[i]==snakeY[0] ){ isFail = true; } } repaint(); //需要不斷的更新頁面實現動畫 } timer.start();//讓時間動起來! }}

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

java經典小游戲匯總

javascript經典小游戲匯總

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

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产日韩精品视频一区二区三区| 欧美日本二区| 免费不卡在线观看| 日本久久综合| 奶水喷射视频一区| 麻豆理论在线观看| 日韩国产精品久久久久久亚洲| 日韩电影免费在线观看| 久久狠狠久久| 久久亚洲风情| 亚洲福利一区| 国产福利电影在线播放| 国产精品激情| 日韩中文字幕一区二区高清99| 久久青草久久| 中文字幕一区久| 国产一区国产二区国产三区| 一区二区三区网站| 亚洲欧洲另类| 99精品在线免费在线观看| 久久99青青| 久久精品72免费观看| 亚洲精品看片| 日韩精品a在线观看91| 在线午夜精品| 午夜在线精品偷拍| 免费日韩av| 伊人精品久久| 亚洲一二av| 欧美亚洲网站| 欧美激情一区| 91日韩欧美| 国产精品三p一区二区| 久久xxxx| 日韩精品诱惑一区?区三区| 欧美午夜精彩| 美女精品在线观看| 亚洲18在线| 国产精品xxx| 综合日韩av| 欧美在线影院| 亚洲精品亚洲人成在线观看| 欧美精品影院| 亚洲黄色免费av| 国产欧美日韩| 欧美日韩一视频区二区| 亚洲日本欧美| 免费看日韩精品| 爽好多水快深点欧美视频| 久久国产毛片| 久久国产直播| 激情欧美日韩一区| 国产精品88久久久久久| 亚洲精品99| 视频一区中文字幕| 亚洲欧洲日韩| 亚洲精品一级二级三级| 日韩三区四区| 久久不见久久见国语| 成人在线视频免费| 新版的欧美在线视频| 久久国产中文字幕| 亚洲激情精品| 日韩av不卡在线观看| 日韩av一级片| 国产精品欧美在线观看| 四虎8848精品成人免费网站| 91看片一区| 免费日韩av片| 国产精品多人| 蜜臀av免费一区二区三区| 亚洲三级观看| 精品亚洲成人| 亚洲综合丁香| 欧美精品导航| 91精品亚洲| 婷婷亚洲成人| 欧洲一区二区三区精品| 中文字幕一区日韩精品| 久久a爱视频| 91精品福利| 免费看一区二区三区| 亚洲激情二区| 三上亚洲一区二区| 亚洲精品第一| se01亚洲视频| 欧美在线日韩| 在线精品视频在线观看高清| 久久99偷拍| 亚洲欧美网站在线观看| 国产精品久久国产愉拍| 国产欧美综合一区二区三区| 亚洲精品大片| 黄色成人91| 日韩在线中文| 午夜天堂精品久久久久| 韩国精品主播一区二区在线观看| 日韩av一区二区在线影视| 亚洲午夜一级| 国产精品一区二区免费福利视频| 午夜久久影院| 久久久成人网| 六月婷婷综合| 精品久久国产一区| 国产精品高清一区二区| 日韩一区网站| 黄色日韩在线| 欧美 日韩 国产一区二区在线视频| 精品欧美视频| 国产精品黄色片| 日韩精品一二区| 亚洲一区二区三区四区五区午夜 | 精品美女视频| 欧美激情日韩| 免费在线观看一区| 美日韩一区二区三区| 国产精品宾馆| 精品一区二区三区亚洲| 国产精品久久国产愉拍| 欧美黄色精品| 精品视频在线观看网站| 国产精品免费精品自在线观看| 亚洲网址在线观看| 日韩影院免费视频| 亚洲免费福利一区| 日本午夜精品久久久| 国产精品亚洲产品| 精品三级av| 99精品在线观看| 六月婷婷一区| 久久国际精品| 中文字幕在线视频久| 欧美综合另类| 天海翼精品一区二区三区| 日本欧美在线| 成人污污视频| 国产一区二区三区天码| 亚洲精品三级| 超碰在线99| 国产欧美久久一区二区三区| 国际精品欧美精品| 蜜臀久久99精品久久一区二区| 亚洲精品字幕| 丁香六月综合| 少妇精品久久久一区二区| 国产成人精选| 亚洲精品四区| 亚洲天堂av影院| 五月国产精品| 91精品一区二区三区综合在线爱| 一区二区国产精品| 色偷偷色偷偷色偷偷在线视频| 黄色成人91| 黄色网一区二区| 日本不卡视频一二三区| 色天使综合视频| 国产精品igao视频网网址不卡日韩| 激情久久久久久| 精品一区二区三区亚洲| 免费日韩av片| 欧美日韩精品免费观看视欧美高清免费大片| 亚洲精选av| 黑丝一区二区三区| 9999国产精品| 日韩精品专区| 99久久精品费精品国产| 亚洲福利久久| 亚洲经典在线| 国产精品日本欧美一区二区三区| 今天的高清视频免费播放成人| 欧美午夜精品一区二区三区电影| 999国产精品视频| 在线亚洲国产精品网站| 久久亚洲一区| 久久国产生活片100| 中文字幕一区二区三区在线视频| 午夜日韩av| 亚洲男女自偷自拍| 伊人精品在线| 亚洲一区久久| 水野朝阳av一区二区三区| av成人国产| 丝袜a∨在线一区二区三区不卡| 欧洲一级精品| 久久蜜桃资源一区二区老牛| av资源亚洲| www成人在线视频| 一区二区小说| 麻豆9191精品国产| 中文不卡在线| 日韩超碰人人爽人人做人人添| 日韩精品福利一区二区三区| 日韩欧美高清一区二区三区| 日本一不卡视频| 国产精品久久久亚洲一区| 国产精品啊啊啊| а√天堂8资源在线| 四虎影视精品| 日韩视频一区| 亚洲精品a级片|