541892063156416贪吃蛇大作战.zip
大小:132.58KB
价格:50积分
下载量:0
评分:
5.0
上传者:Gaorui678
更新日期:2025-09-22

541892063156416贪吃蛇大作战.zip

资源文件列表(大概)

文件名
大小
贪吃蛇大作战/img/
-
贪吃蛇大作战/img/body.png
148B
贪吃蛇大作战/img/l.png
151B
贪吃蛇大作战/img/title2.png
114.5KB
贪吃蛇大作战/src/
-
贪吃蛇大作战/src/Demo/
-
贪吃蛇大作战/src/Demo/.idea/
-
贪吃蛇大作战/src/Demo/.idea/.gitignore
50B
贪吃蛇大作战/src/Demo/.idea/dbnavigator.xml
22.69KB
贪吃蛇大作战/src/Demo/.idea/encodings.xml
317B
贪吃蛇大作战/src/Demo/.idea/misc.xml
238B
贪吃蛇大作战/src/Demo/.idea/modules.xml
255B
贪吃蛇大作战/src/Demo/.idea/workspace.xml
2.29KB
贪吃蛇大作战/src/Demo/Demo.iml
450B
贪吃蛇大作战/src/Demo/Demo0.java
102B
贪吃蛇大作战/src/Demo/MyPanel.java
3.82KB
贪吃蛇大作战/src/Demo/out/
-
贪吃蛇大作战/src/Demo/out/production/
-
贪吃蛇大作战/src/Demo/out/production/Demo/
-
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/
-
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/
-
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/.gitignore
50B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/dbnavigator.xml
22.69KB
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/encodings.xml
317B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/misc.xml
238B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/modules.xml
255B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/.idea/workspace.xml
752B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/Demo.iml
450B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/Demo0.class
250B
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/MyPanel.class
4.46KB
贪吃蛇大作战/src/Demo/out/production/Demo/Demo/Ui.class
833B
贪吃蛇大作战/src/Demo/Ui.java
382B

资源内容介绍

541892063156416贪吃蛇大作战.zip
package Demo;import java.awt.Color;import java.awt.Component;import java.awt.Font;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;import javax.swing.ImageIcon;import javax.swing.JPanel;import javax.swing.Timer;//画布类public class MyPanel extends JPanel implements KeyListener,ActionListener{//继承private static final Component This = null;//键盘监听交互接口int length;int score;int[] snakeX=new int[500];//坐标int[] snakeY=new int[500];String fx;boolean ifStart=false;//定时器Timer timer =new Timer(100,this);int foodx;int foody;Random random =new Random();public MyPanel(){init();//添加监听事件this.setFocusable(true);this.addKeyListener(this);score=0;}//初始化方法public void init(){length=3;fx="r";//初始化小蛇的位置snakeX[0]=100;snakeY[0]=150;snakeX[1]=75;snakeY[1]=150;snakeX[2]=50;snakeY[2]=150;foodx=25+25*random.nextInt(57);foody=125+25*random.nextInt(27);System.out.println(foodx);System.out.println(foody);timer.start();}//绘制的方法@Override protected void paintComponent(Graphics g){//画笔对象 super.paintComponent(g); //绘制顶部的标题 new ImageIcon("C:/Users/陈永祥/Desktop/img/title2.png").paintIcon(this,g,25,11);//创建对象 //绘制游戏区域 g.fillRect(25, 125, 1450, 700); //绘制小蛇 //蛇头 new ImageIcon("C:/Users/陈永祥/Desktop/img/l.png").paintIcon(this, g, snakeX[0], snakeY[0]); //蛇身 for(int i=1;i<length;i++){ new ImageIcon("C:/Users/陈永祥/Desktop/img/body.png").paintIcon(This, g, snakeX[i], snakeY[i]); } //游戏的提示语 if(ifStart==false){ g.setColor(Color.white); g.setFont(new Font("微软雅黑",Font.BOLD,40)); g.drawString("按压空格键继续游戏", 550,500); g.drawString("无尽模式", 650,400); } //画出食物的位置 new ImageIcon("C:/Users/陈永祥/Desktop/img/body.png").paintIcon(this, g, foodx, foody);}@Override//按压public void keyPressed(KeyEvent e) {int keyCode=e.getKeyCode();if(keyCode==KeyEvent.VK_SPACE){ifStart=!ifStart;}if(ifStart==true){if(keyCode==KeyEvent.VK_LEFT&&fx!="r"){fx="l";}else if(keyCode==KeyEvent.VK_RIGHT&&fx!="l"){fx="r";}else if(keyCode==KeyEvent.VK_UP&&fx!="d"){fx="u";}else if(keyCode==KeyEvent.VK_DOWN&&fx!="u"){fx="d";}}repaint();}//定时器执行的方法@Overridepublic void actionPerformed(ActionEvent e) {//改变蛇的位置if(ifStart==true){for(int i=length-1;i>0;i--){snakeX[i]=snakeX[i-1];snakeY[i]=snakeY[i-1];}if(fx.equals("l")){snakeX[0]=snakeX[0]-25; if(snakeX[0]<25){snakeX[0]=1450;}}else if(fx.equals("r")){snakeX[0]=snakeX[0]+25;if(snakeX[0]>1450){snakeX[0]=25;}}else if(fx.equals("u")){snakeY[0]=snakeY[0]-25;if(snakeY[0]<120){snakeY[0]=800;}}else if(fx.equals("d")){snakeY[0]=snakeY[0]+25;if(snakeY[0]>800){snakeY[0]=120;}}//判断是否吃了食物if(snakeX[0]==foodx&&snakeY[0]==foody){length++;score++;if(score==100){ifStart=!ifStart;}foodx=25+25*random.nextInt(57);foody=125+25*random.nextInt(27);System.out.print("当前食物坐标("+foodx+",");System.out.print(foody+")");System.out.println("|||当前分数:"+score+" ");}repaint();}timer.start();}@Overridepublic void keyReleased(KeyEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void keyTyped(KeyEvent arg0) {// TODO Auto-generated method stub}}/** * 构造方法 * 初始化方法 * 绘制方法 * 定时器执行的方法 */

用户评论 (0)

发表评论

captcha