av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

java實現簡單貪吃蛇小游戲

瀏覽:95日期:2022-08-11 17:18:23

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

有兩個類,放在同一文件下下即可,背景圖片,標題,蛇尾可自行更改

import java.awt.*;import javax.swing.*;import java.awt.event.*;public class MyJFrame extends JFrame{ public MyJFrame() { int x= Toolkit.getDefaultToolkit().getScreenSize().width; int y = Toolkit.getDefaultToolkit().getScreenSize().height; setLocation((x-800)/2, (y-800)/2); setSize(800,800); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle('貪吃蛇'); setLayout(null); getLayeredPane().setLayout(null); JLabel background = new JLabel(new ImageIcon('C:UsersHPDesktopjavaabackground3.jpg'));//注意此處路徑 JLabel title = new JLabel(new ImageIcon('C:UsersHPDesktopjavaatitle1.jpg'));//注意此處路徑 background.setBounds(20,80,750,650); title.setBounds(0,0,800,75); getLayeredPane().add(background,new Integer(Integer.MIN_VALUE)); getLayeredPane().add(title,new Integer(Integer.MIN_VALUE+1)); ((JPanel)getContentPane()).setOpaque(false); MyPanel mypanel = new MyPanel(); mypanel.setBounds(0,0,getWidth(),getHeight()); add(mypanel); } public static void main(String[] args) { new MyJFrame(); }}

import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.Random;public class MyPanel extends JPanel implements ActionListener{ int lenght ; int score1; Boolean jieshux = false; JLabel scorel = new JLabel('分數:'+score1); JLabel lenghl = new JLabel('長度:'+lenght); JLabel shibai = new JLabel('按下空格開始游戲!'); JLabel jieshu = new JLabel('游戲失敗!按空格重新開始!'); String dir = 'R'; Boolean isstart = false; int[][] snake = new int[300][2]; Random r = new Random(); int x,y; //初始化 public void initialize() { snake[0][0]=70; snake[0][1]=80; snake[1][0]=45; snake[1][1]=80; snake[2][0]=20; snake[2][1]=80; isstart = true; jieshux = false; lenght = 3; score1 = 0; dir = 'R'; repaint(); } public MyPanel() { setLayout(null); scorel.setBounds(700, 20, 50, 30); lenghl.setBounds(700, 40, 50, 30); shibai.setBounds(300,400,200,60); shibai.setFont(new Font('黑體',Font.BOLD,20)); jieshu.setFont(new Font('黑體',Font.BOLD,20)); jieshu.setVisible(false); jieshu.setBounds(250,400,300,60); add(scorel); add(lenghl); add(shibai); add(jieshu); x = r.nextInt(29)*25+20; y = r.nextInt(25)*25+80; //this.setFocusable(true); //焦點獲取 setOpaque(false); initialize(); Timer t = new Timer(200,this); this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_SPACE && isstart==false) { isstart=true; }else if(e.getKeyCode()==KeyEvent.VK_SPACE && isstart==true &&jieshux == false){ isstart = false; }else if(e.getKeyCode()==KeyEvent.VK_W && isstart==true && dir!='D'&&jieshux == false) { dir='U'; }else if(e.getKeyCode()==KeyEvent.VK_A && isstart==true && dir!='R'&&jieshux == false) { dir='L'; }else if(e.getKeyCode()==KeyEvent.VK_D && isstart==true && dir!='L'&&jieshux == false) { dir='R'; }else if(e.getKeyCode()==KeyEvent.VK_S && isstart==true && dir!='U'&&jieshux == false) { dir='D'; }else if(e.getKeyCode()==KeyEvent.VK_SPACE && jieshux==true) { initialize(); } } }); t.start(); } @Override public void actionPerformed(ActionEvent e) { this.requestFocus(true); if(isstart&&dir.equals('R')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][0]>=745) { //snake[i][0]=20; jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][0]=snake[1][0]+25; } else if(isstart&&dir.equals('D')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][1]>=705) { //snake[i][1]=80; jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][1]=snake[1][1]+25; }else if(isstart&&dir.equals('U')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][1]<=80) { //snake[i][1]=705; jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][1]=snake[1][1]-25; }else if(isstart&&dir.equals('L')&&!jieshux) { for(int i=0;i<lenght-1;i++) { if(snake[i][0]<=20) { jieshux = !jieshux; //isstart = !isstart; break; }else { snake[lenght-i-1][0]=snake[lenght-i-2][0]; snake[lenght-i-1][1]=snake[lenght-i-2][1]; } } if(!jieshux) snake[0][0]=snake[1][0]-25; } if(snake[0][1]==y&&snake[0][0]==x) { x = r.nextInt(29)*25+20; y = r.nextInt(25)*25+80;score1+=10; lenght++; snake[lenght-1][1]=snake[lenght-2][1]; snake[lenght-1][0]=snake[lenght-2][0];add(scorel); add(lenghl); } if(isstart==false) { shibai.setVisible(true); }else { shibai.setVisible(false); if(jieshux == false) { jieshu.setVisible(false); }else { jieshu.setVisible(true); } } for(int i = 1;i<lenght;i++) { if(snake[0][0]==snake[i][0]&&snake[0][1]==snake[i][1]) { jieshux=true; } } if(isstart&&!jieshux)repaint(); } public void paint(Graphics g) { super.paint(g); //邊界為(20,80),(770,730) scorel.setText('分數:'+score1); lenghl.setText('長度:'+lenght); g.drawLine(18, 78, 18, 732); g.drawLine(18, 78, 772, 78); g.drawLine(18, 732, 772, 732); g.drawLine(772, 78, 772, 732); //豎線 for(int i=20;i<=770;i+=25) { g.drawLine(i,80,i,730); //g.drawLine(0,i,600,i); } //橫線 for(int i=80;i<=750;i+=25) { //g.drawLine(i,50,i,780); g.drawLine(20,i,770,i); } for(int i = 0;i<lenght;i++) { if(i>0) { g.drawImage(new ImageIcon('C:UsersHPDesktopjavaabody.png').getImage(), snake[i][0],snake[i][1],this);//注意此處路徑 }else { g.fillOval(snake[i][0], snake[i][1], 25, 25); } } g.setColor(Color.red); g.fillOval(x, y, 25, 25); }}

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

標簽: Java
相關文章:
主站蜘蛛池模板: 国产91在线 | 亚洲 | 亚洲国产欧美精品 | 欧美日韩精品一区二区三区蜜桃 | 一区二区三区四区在线 | 日韩视频在线一区 | 亚洲人人舔人人 | 久久三区 | 一区精品在线观看 | 免费av直接看 | 亚洲成人免费电影 | 亚洲毛片在线观看 | 一级片网址 | 国产精品综合一区二区 | 91素人 | 欧美日韩一区二区电影 | 欧美一区二区在线 | 成人在线视频一区 | 三级黄色片在线观看 | 精品国产区 | 久久免费高清 | 9久久婷婷国产综合精品性色 | www.亚洲视频.com | 国产情侣啪啪 | 国产激情在线 | 久久久久久91 | 久久久男人的天堂 | 美女一区 | 国产精品久久久久久久7777 | 午夜精品一区二区三区在线 | 亚洲第一女人av | 精品久久久久久久久久久久久久久久久 | 久久精品色欧美aⅴ一区二区 | 天天搞天天操 | 欧美一页| 国产精品久久久久久久久久久久久久 | 日本亚洲一区二区 | 亚洲性在线 | 久久国产精品亚洲 | 欧美日韩一卡二卡 | 一级aaaaaa毛片免费同男同女 | 欧美亚洲国产一区二区三区 |