java练手项目(贪吃蛇) 您所在的位置:网站首页 贪吃蛇的背景怎么换图片 java练手项目(贪吃蛇)

java练手项目(贪吃蛇)

2024-07-12 00:04| 来源: 网络整理| 查看: 265

目录

​编辑

一、游戏背景

二、功能实现

三、效果展示

一、游戏背景

1976年,Gremlin平台推出了一款经典街机游戏Blockade。游戏中,两名玩家分别控制一个角色在屏幕上移动,所经之处砌起围栏。角色只能向左、右方向90度转弯,游戏目标保证让对方先撞上屏幕或围栏。

二、功能实现

目前使用intellij idea。

创建游戏项目game。src下创建一个包。包中包含其中Direction为枚举类型

在MySnake中代码

package dem; import javax.swing.*; public class MySnake { public static void main(String[] args) { //创建一个窗口 JFrame frame = new JFrame(); //指定窗口xy的位置以及窗口宽度和高度的值 frame.setBounds(600,100,700,900); //不允许拖拽改变大小 frame.setResizable(false); //奠基窗口关闭按钮,执行操作退出 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //添加画布 frame.add(new MyPanel()); //展示出来 frame.setVisible(true); } }

MyPanel中代码

package dem; 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 MyPanel extends JPanel implements KeyListener, ActionListener { //声明蛇头和身体图片 ImageIcon right = new ImageIcon("image/right.png"); ImageIcon body = new ImageIcon("image/body.png"); //声明上下左蛇头图片 ImageIcon top = new ImageIcon("image/top.png"); ImageIcon left = new ImageIcon("image/left.png"); ImageIcon bottom = new ImageIcon("image/bottom.png"); //声明一个初始值,表示蛇的长度 int len = 3; //声明两个数组分别存放x和y的位置 int[] snakeX = new int[1008]; int[] snakeY = new int[1008]; //枚举 Direction direction = Direction.right; //添加一个判断开始游戏true boolean isStart = false; //创建定时器 Timer timer = new Timer(100,this); //声明食物的两个坐标 int foodX; int foodY; //声明随机变量random Random random = new Random(); //声明食物图片 ImageIcon food = new ImageIcon("image/food.png"); public MyPanel(){ //设定蛇的头和身体的起始位置 snakeX[0] = 100; snakeY[0] = 100; snakeX[1] = 75; snakeY[1] = 100; snakeX[2] = 50; snakeY[2] = 100; //获取键盘事件 this.setFocusable(true); //添加监听 this.addKeyListener(this); //启动定时器 timer.start(); //生成食物坐标 foodX = 25+25*random.nextInt(20); foodY = 25+25*random.nextInt(20); } //重写画组件方法 @Override protected void paintComponent(Graphics g) { //调用父类方法做一些基本工作 super.paintComponent(g); //设置背景颜色 this.setBackground(Color.red); //在画布添加游戏区域 g.fillRect(0,0,700,900); //添加右侧蛇头 //right.paintIcon(this,g,snakeX[0],snakeY[0]); //根据枚举变量的方向值进行判断 switch(direction){ case top: top.paintIcon(this,g,snakeX[0],snakeY[0]); break; case left: left.paintIcon(this,g,snakeX[0],snakeY[0]); break; case right: right.paintIcon(this,g,snakeX[0],snakeY[0]); break; case bottom: bottom.paintIcon(this,g,snakeX[0],snakeY[0]); break; } //两个身体 /* body.paintIcon(this,g,75,100); body.paintIcon(this,g,50,100);*/ for(int i = 1; i 0;i--){ snakeX[i] = snakeX[i - 1]; snakeY[i] = snakeY[i - 1]; } //通过方向键进行判断控制蛇头 switch (direction){ case top: snakeY[0] -= 25; if (snakeY[0] = 900) { snakeY[0] = 0; } break; case right: //假如蛇水平向右,则蛇头值+25 snakeX[0] += 25; //超出700像素x从0 if (snakeX[0] >= 700) { snakeX[0] = 0; } break; case left: //假如蛇水平向右,则蛇头值+25 snakeX[0] -= 25; //超出700像素x从0 if (snakeX[0]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有