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

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

java swing框架實現貪吃蛇游戲

瀏覽:19日期:2022-08-19 13:25:05

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

1、編寫main方法

package game;import java.awt.Graphics;import javax.swing.*;public class snakeMain extends JFrame { public snakeMain() { snakeWin win = new snakeWin(); add(win); setTitle('̰貪吃蛇v1.0'); setSize(435,390); setLocation(200, 200); setVisible(true); } public static void main(String[] args) { new snakeMain(); }}

2、編寫實體類

package game;public class snakeAct { private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } }

3、編寫主要程序

package game;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.util.List;public class snakeWin extends JPanel implements ActionListener,KeyListener,Runnable{ int fenShu=0,Speed=0; boolean start = false; int rx=0,ry=0; int eat1=0,eat2=0; JDialog dialog = new JDialog(); JLabel label = new JLabel('你掛了!你的分數'+fenShu+''); JButton ok = new JButton('T_T'); Random r = new Random(); JButton newGame,stopGame; List<snakeAct> list = new ArrayList<snakeAct>(); int temp=0; Thread nThread; public snakeWin() { newGame = new JButton('開始'); stopGame = new JButton('結束'); newGame.addActionListener(this); stopGame.addActionListener(this); this.addKeyListener(this); this.setLayout(new FlowLayout(FlowLayout.LEFT)); this.add(newGame); this.add(stopGame); dialog.setLayout(new GridLayout(2, 1)); dialog.add(label); dialog.add(ok); dialog.setSize(200, 200); dialog.setLocation(200, 200); dialog.setVisible(false); ok.addActionListener(this); } public void paintComponent(Graphics g){ super.paintComponent(g); g.drawRect(10, 40, 400, 300); g.drawString('分數'+fenShu, 150, 15); g.drawString('速度'+Speed, 150, 35); g.setColor(new Color(0, 255, 0)); if(start){ g.fillRect(10+rx*10, 40+ry*10, 10, 10); for (int i = 0; i < list.size(); i++) { g.setColor(new Color(0, 0, 255)); g.fillRect(10+list.get(i).getX()*10, 40+list.get(i).getY()*10, 10, 10); } } } public void actionPerformed(ActionEvent e) { if(e.getSource()==newGame){ newGame.setEnabled(false); start = true; rx=r.nextInt(40);ry=r.nextInt(30); snakeAct tempAct = new snakeAct(); tempAct.setX(20); tempAct.setY(15); list.add(tempAct); this.requestFocus(); nThread = new Thread(this); nThread.start(); repaint(); } if(e.getSource()==stopGame){ System.exit(0); } if(e.getSource()==ok){ list.clear(); start=false; newGame.setEnabled(true); dialog.setVisible(false); fenShu=0; Speed=0; repaint(); } } private void eat() { if (rx==list.get(0).getX()&&ry==list.get(0).getY()) { rx = r.nextInt(40);ry = r.nextInt(30); snakeAct tempAct = new snakeAct(); tempAct.setX(list.get(list.size()-1).getX()); tempAct.setY(list.get(list.size()-1).getY()); list.add(tempAct); fenShu = fenShu+100*Speed+10; eat1++; if(eat1-eat2>=4){ eat2=eat1; Speed++; } } } public void otherMove(){ snakeAct tempAct = new snakeAct(); for (int i = 0; i < list.size(); i++) { if (i==1) { list.get(i).setX(list.get(0).getX()); list.get(i).setY(list.get(0).getY()); }else if(i>1){ tempAct=list.get(i-1); list.set(i-1, list.get(i)); list.set(i, tempAct); } } } public void move(int x,int y){ if (minYes(x, y)) { otherMove(); list.get(0).setX(list.get(0).getX()+x); list.get(0).setY(list.get(0).getY()+y); eat(); repaint(); }else { nThread = null; label.setText('你掛了!你的分數'+fenShu+''); dialog.setVisible(true); } } public boolean minYes(int x,int y){ if (!maxYes(list.get(0).getX()+x,list.get(0).getY()+ y)) { return false; } return true; } public boolean maxYes(int x,int y){ if (x<0||x>=40||y<0||y>=30) { return false; } for (int i = 0; i < list.size(); i++) { if (i>1&&list.get(0).getX()==list.get(i).getX()&&list.get(0).getY()==list.get(i).getY()) { return false; } } return true; } public void keyPressed(KeyEvent e) { if(start){ switch (e.getKeyCode()) { case KeyEvent.VK_UP: move(0, -1); temp=1; break; case KeyEvent.VK_DOWN: move(0, 1); temp=2; break; case KeyEvent.VK_LEFT: move(-1, 0); temp=3; break; case KeyEvent.VK_RIGHT: move(1, 0); temp=4; break; default: break; } } } public void keyReleased(KeyEvent e) {} public void keyTyped(KeyEvent e) {} public void run() { while (start) { switch (temp) { case 1: move(0, -1); break; case 2: move(0, 1); break; case 3: move(-1, 0); break; case 4: move(1, 0); break; default: break; } repaint(); try { Thread.sleep(300-30*Speed); } catch (InterruptedException e) { e.printStackTrace(); } } }}

4、效果圖

java swing框架實現貪吃蛇游戲

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

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

javascript經典小游戲匯總

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

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产亚洲在线观看| 欧美激情久久久久久久久久久| 国产精品2区| 国产伦精品一区二区三区在线播放 | 91九色精品| 国产亚洲毛片| 日韩中文字幕| 国产欧美另类| 在线手机中文字幕| 91精品亚洲| 欧美综合二区| 清纯唯美亚洲综合一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 国产精品mv在线观看| 久久精品女人| 今天的高清视频免费播放成人| 国产精品婷婷| 久久免费影院| 亚洲色诱最新| 你懂的国产精品永久在线| 日韩欧美网址| 日本中文字幕视频一区| 精品中文在线| 91高清一区| 国产精品一区高清| 伊人久久高清| 青青国产精品| 国产在线不卡| 青青青国产精品| 久久久久亚洲| 国产乱码精品一区二区亚洲| 成人小电影网站| 午夜性色一区二区三区免费视频| 国产在线观看91一区二区三区| 国产农村妇女精品一二区| 麻豆精品蜜桃视频网站| 91久久在线| 国产精品毛片视频| 亚洲网站视频| 国产精品va| 亚洲综合婷婷| 欧美日中文字幕| 国产精品白丝一区二区三区| 尤物精品在线| 人在线成免费视频| 国产麻豆精品| 最近国产精品视频| 欧美午夜精彩| 国产成人精品一区二区三区免费| 中文字幕日本一区| 午夜国产一区二区| 97欧美在线视频| 日日夜夜免费精品| 国精品一区二区三区| 狠狠久久伊人中文字幕| 综合五月婷婷| 国产精品毛片在线| 久久精品播放| 日韩在线精品| 精品久久精品| 国产激情综合| 青青青国产精品| 中文字幕av一区二区三区四区| 亚洲性图久久| 99精品视频在线| 天堂8中文在线最新版在线| 国产精品66| 日本午夜精品久久久| 黄色成人91| 蜜臀久久99精品久久一区二区| 麻豆视频在线看| 国产不卡精品| 高清一区二区| 国产一区日韩| 国产成人免费| 韩国一区二区三区视频| 国产精品久久久久久av公交车| 综合欧美精品| 综合一区av| 亚洲精品成人一区| 亚洲午夜国产成人| 蜜桃一区二区三区在线观看| 不卡视频在线| 欧美sss在线视频| 日韩国产激情| 日韩欧美另类一区二区| 成人美女视频| 亚洲www免费| 欧美日韩在线二区| 欧美日韩精品免费观看视频完整| 免费精品国产的网站免费观看| 99久久亚洲精品蜜臀| 国产在线欧美| 美日韩精品视频| 视频一区在线播放| 亚洲影院天堂中文av色| 日韩在线黄色| 91欧美极品| 国产精品久久久久av蜜臀| 九九99久久精品在免费线bt| 精品色999| 桃色av一区二区| 国精品一区二区| 蜜臀av亚洲一区中文字幕| 日韩精品视频一区二区三区| 国产亚洲精品精品国产亚洲综合| 国产亚洲人成a在线v网站| 久久99精品久久久野外观看| 国内精品伊人| 欧美日韩色图| 亚洲免费毛片| 国产精品一区二区三区av麻| 欧美精品第一区| 四虎国产精品免费观看| 伊人精品一区| 日韩欧美三区| 国产精品麻豆久久| 99香蕉国产精品偷在线观看| 视频一区国产视频| 国产调教一区二区三区| 精品国产乱码久久久久久1区2匹| 高潮一区二区| 美女网站久久| 另类综合日韩欧美亚洲| 久久蜜桃精品| 亚洲免费毛片| 久久中文在线| 久久久人人人| 美女网站久久| 久久女人天堂| 91久久久精品国产| 欧美一区激情| 99久久99久久精品国产片果冰| 亚洲啊v在线免费视频| 国产一区2区| 亚洲乱码一区| 偷拍精品精品一区二区三区| 婷婷成人av| 久久久久国产精品一区二区| 日韩综合一区二区三区| 免费看av不卡| 日韩av网站在线观看| 群体交乱之放荡娇妻一区二区| 人人精品人人爱| 国产精品久久久久久久久久10秀| 久久不射中文字幕| 久久男人天堂| 91亚洲精品视频在线观看| 99国产精品一区二区| 国产日韩欧美在线播放不卡| 91精品亚洲| 免费在线欧美黄色| 久久福利精品| 电影亚洲精品噜噜在线观看| 欧美一区不卡| 一区二区自拍| 91综合网人人| 国产一卡不卡| 国产精品美女| 久久久夜精品| 成人在线免费观看网站| 日韩国产一二三区| 国产日韩综合| 91精品国产调教在线观看| 久久不卡国产精品一区二区| 天堂va蜜桃一区二区三区| 国产精品专区免费| 国产精品777777在线播放 | 日韩精品第一区| 久久国产婷婷国产香蕉| 中国女人久久久| 成人午夜在线| 国产精品一线| 日韩美女精品| 石原莉奈在线亚洲二区| 国产精品试看| 免费不卡在线观看| 日韩三区在线| 精品中文字幕一区二区三区| 亚洲精品裸体| 伊人久久亚洲美女图片| 日韩大片在线播放| 国内精品伊人| 国产精品va| 国产精品资源| 欧美一级久久| 香蕉久久国产| 欧美成人精品| 蜜桃国内精品久久久久软件9| 日韩精品第一区| 成人一区而且| 国产91在线精品| 老司机精品视频网| 国产毛片一区二区三区| 日韩高清欧美激情| 日本不卡在线视频| 日韩精品成人在线观看| 亚洲+小说+欧美+激情+另类| 一本综合精品| 日韩区一区二|