[Java] sas →→→→→进入此内容的聊天室

来自 , 2020-12-26, 写在 Java, 查看 187 次.
URL http://www.code666.cn/view/e8fd4a8a
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.*;
  5. import java.net.*;
  6. import java.applet.*;
  7.  
  8.  
  9. public class SnakeMap extends JPanel implements Runnable{
  10.  
  11.  
  12.         ImageIcon eatIcon = new ImageIcon("food.png");
  13.         ImageIcon heidong = new ImageIcon("heidong.png");
  14.         SnakeMap sm;
  15.         Snake snake = new Snake();
  16.  
  17.         public SnakeMap(){
  18.                 sm = this;
  19.                 //构造组件
  20.                 JLabel  jlTitle = new JLabel();
  21.                 jlTitle = new JLabel(new ImageIcon("title.jpg"),JLabel.CENTER);
  22.                 JLabel  jlLgio = new JLabel();
  23.                 jlLgio = new JLabel(new ImageIcon("lgio.png"),JLabel.CENTER);
  24.                 JLabel  jlMap = new JLabel();
  25.                 jlMap = new JLabel(new ImageIcon("map5.jpg"),JLabel.CENTER);
  26.                 JButton newGame = new JButton("开始");
  27.                 newGame.setBackground(new Color(168,132,98));
  28.                 newGame.setForeground(new Color(128,64,0));
  29.                 newGame.setFont(new Font("华文行楷",1,30 ));
  30.                 JButton stopGame = new JButton("退出");
  31.                 stopGame.setBackground(new Color(168,132,98));
  32.                 stopGame.setForeground(new Color(128,64,0));
  33.                 stopGame.setFont(new Font("华文行楷",1,30 ));
  34.                 JLabel jlScore = new JLabel("分数:");
  35.                 jlScore.setForeground(new Color(128,64,0));
  36.                 jlScore.setFont(new Font("华文行楷",1,22 ));
  37.                 //JLabel jlHard = new JLabel("难度");
  38.                 //jlHard.setForeground(new Color(128,64,0));
  39.                 //jlHard.setFont(new Font("华文行楷",1,22 ));
  40.                 //JSlider slider = new JSlider(5,20);
  41.                 //slider.setBackground(new Color(168,132,98));
  42.                 //slider.setSnapToTicks(true);
  43.                 //slider.setPaintTicks(false);
  44.                 //slider.setMajorTickSpacing(0);
  45.                 //slider.setMinorTickSpacing(0);
  46.  
  47.                 //设定布局
  48.                 setLayout(null);
  49.                
  50.                 //添加组件
  51.                 add(jlTitle);
  52.                 jlTitle.setBounds(0,0,800,70);
  53.                 add(newGame);
  54.                 newGame.setBounds(40, 120, 120, 40);
  55.                 add(jlScore);
  56.                 jlScore.setBounds(30,210,100,80);
  57.                 //add(jlHard);
  58.                 //jlHard.setBounds(30,220,70,40);
  59.                 add(stopGame);
  60.                 stopGame.setBounds(40,320,120,40);
  61.                 add(jlLgio);
  62.                 jlLgio.setBounds(15,370,180,230);
  63.                 add(jlMap);
  64.                 jlMap.setBounds(210,80,580,480);
  65.                 //add(slider);
  66.                 //slider.setBounds(100,230,100,20);
  67.                
  68.                 //设置窗体颜色
  69.                 this.setBackground(new Color(168,132,98));
  70.  
  71.                 //设置监听器
  72.                 newGame.addActionListener(new ActionListener(){
  73.                         public void actionPerformed(ActionEvent e){
  74.                                 //newGame.setEnabled(false);
  75.                                 if(snake.start == false && snake.failed == true){
  76.                                         music();
  77.                                         snake.setup();
  78.                                         snake.start = true;
  79.                                         requestFocus(true);
  80.                                 }
  81.                                 if(snake.start == true){
  82.                                         requestFocus(true);
  83.                                 }
  84.                                 if(snake.start == false && snake.failed == false){
  85.                                         snake.setup();
  86.                                         snake.start = true;
  87.                                         snake.failed = true;
  88.                                         requestFocus(true);
  89.                                 }
  90.                         }
  91.                 });
  92.  
  93.                 stopGame.addActionListener(new ActionListener(){
  94.                         public void actionPerformed(ActionEvent e){
  95.                                 System.exit(0);
  96.                         }
  97.                 });
  98.  
  99.                 //添加键盘监听
  100.                 addKeyListener(new KeyAdapter(){
  101.                         public void keyPressed(KeyEvent e){
  102.                                 if(snake.start && snake.failed){
  103.                                         if(e.getKeyCode() == KeyEvent.VK_UP && snake.j !=20 && snake.isMove == false){
  104.                                                 snake.j = -20;
  105.                                                 snake.i = 0;
  106.                                                 snake.isMove = true;
  107.                                         }
  108.                                         if(e.getKeyCode() == KeyEvent.VK_DOWN && snake.j != -20 && snake.isMove == false){
  109.                                                 snake.j = 20;
  110.                                                 snake.i = 0;
  111.                                                 snake.isMove = true;
  112.                                         }
  113.                                         if(e.getKeyCode() ==KeyEvent.VK_LEFT && snake.i != 20 && snake.isMove == false){       
  114.                                                 snake.i = -20;
  115.                                                 snake.j = 0;
  116.                                                 snake.isMove = true;
  117.                                         }
  118.                                         if(e.getKeyCode() == KeyEvent.VK_RIGHT && snake.i != -20 && snake.isMove == false){
  119.                                                 snake.i = 20;
  120.                                                 snake.j = 0;
  121.                                                 snake.isMove = true;
  122.                                         }
  123.  
  124.                                         if(e.getKeyCode() == KeyEvent.VK_SPACE && snake.pause == true)
  125.                                                 snake.pause = false;
  126.                                         else if(e.getKeyCode() == KeyEvent.VK_SPACE && snake.pause == false){
  127.                                                 snake.pause = true;
  128.                                                 Thread thread2 = new Thread(sm);
  129.                                                 thread2.start();
  130.                                                 requestFocus(true);
  131.                                         }
  132.                                 }
  133.                         }
  134.                 });    
  135.                 Thread thread=new Thread(sm);
  136.                 thread.start();
  137.         }                      
  138.  
  139.         public void run(){
  140.                 while(snake.pause){
  141.                         snake.move();
  142.                         repaint();
  143.                         try{
  144.                                 Thread.sleep(400 - 50*snake.speed);  
  145.                         }catch(Exception e){}
  146.                 }
  147.         }
  148.  
  149.        
  150.  
  151.                 /*if(snakex[0] == 370 && snakey[0] == 400){
  152.                         snakex[0] = 610;
  153.                         snakey[0] = 280;
  154.                 }
  155.                 else if(snakex[0] == 610 && snakey[0] == 280){
  156.                         snakex[0] = 370;
  157.                         snakey[0] = 400;
  158.                 }*/
  159.                
  160.  
  161.         public void music(){
  162.                 try{
  163.                         File f = new File("faded.wav");
  164.                         URI uri = f.toURI();
  165.                         URL url = uri.toURL();
  166.                         AudioClip aau = Applet.newAudioClip(url);
  167.                         aau.loop();
  168.                 }catch(Exception e){
  169.                         e.printStackTrace();
  170.                 }
  171.         }
  172.  
  173.  
  174.         //调用paint方法
  175.         public void paint(Graphics g){
  176.                 super.paint(g);
  177.                 //画出地图  左上角(210,80)  右下角(790,560)
  178.                 g.drawRect(200,70,600,500);  
  179.                 g.drawRect(210,80,580,480);
  180.                 g.fillRect(200,70,600,10);
  181.                 g.fillRect(200,70,10,500);
  182.                 g.fillRect(200,560,600,10);
  183.                 g.fillRect(790,70,10,500);
  184.  
  185.                 //画出蛇、食物
  186.                 if(snake.start && snake.failed){
  187.                         eatIcon.paintIcon(this , g , snake.food.eatx , snake.food.eaty);
  188.                         heidong.paintIcon(this , g , 370 , 400);
  189.                         heidong.paintIcon(this , g , 610 , 280);
  190.                         g.setColor(new Color(255,0,0));
  191.                         g.fillOval(snake.snakex[0] , snake.snakey[0] , 20 , 20);
  192.                         Graphics2D g1 = (Graphics2D) g;
  193.                         g1.setPaint(new GradientPaint(168,132,Color.CYAN,185,210,Color.MAGENTA,true));
  194.                         for(int m = 1 ; m < snake.len ; m ++){
  195.                                 g.fillOval(snake.snakex[m] , snake.snakey[m] , 20 , 20);
  196.                         }
  197.                         g.setColor(new Color(128,64,0));
  198.                         g.setFont(new Font("华文行楷",Font.BOLD, 30));
  199.                         g.drawString(""+snake.score, 100, 260);
  200.                 }
  201.  
  202.                 if (!snake.failed){
  203.                         g.setColor(new Color(128,64,0));
  204.                         g.setFont(new Font("华文行楷",Font.BOLD, 30));
  205.                         g.drawString(""+snake.score, 100, 200);
  206.             g.setColor(new Color(168,132,98));
  207.             g.setFont(new Font("arial",Font.BOLD, 30));
  208.             g.drawString("Game Over ! Press start to restart", 200, 300);
  209.         }
  210.         }
  211. }
  212.  

回复 "sas"

这儿你可以回复上面这条便签

captcha