资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

Java实现贪吃蛇大作战小游戏(完整版)

Java 更新时间: 发布时间: 计算机考试归档 最新发布

Java实现贪吃蛇大作战小游戏(完整版)

 大家好,今天尝试用swing技术写一个贪吃蛇大作战小游戏,供大家参考。


 效果展示


目录

效果展示

一、游戏界面

二、得分情况

 项目介绍

项目背景

总体需求

实现过程

代码展示

主类 :Demo类

 MyPanel类

 ①构造方法

 ②初始化方法

 ③绘制方法

 ④定时器执行方法

框架Ui类

项目结构

总结



效果展示

一、游戏界面

二、得分情况


 项目介绍

项目背景

“贪吃蛇大作战”游戏是一个经典的游戏,它因操作简单、娱乐性强,自从计算机实现以来,深受广大电脑玩家的喜爱,本项目基于Java技术,开发了一个 操作简单、界面美观、功能较齐全 的“贪吃蛇”游戏。通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。

总体需求

 本系统主要是完成贪吃蛇游戏的基本操作,用户可自己练习和娱乐。需要满足以下几点要求:

(1)利用方向键来改变蛇的运行方向。
(2)空格键暂停或继续游戏,并在随机的地方产生食物。
(3)吃到食物就变成新的蛇体(蛇身长度变长,游戏继续)。

实现过程

(1)绘制窗体对象。
(2)静态UI设计(包括小蛇,食物,游戏区域和标题区域)。
(3)使用键盘监听事件和定时器实现小蛇的移动。
(4)小蛇与食物碰撞的实现。
(5)定义变量存放小蛇长度,遍历数组实现小蛇身体的增加功能。
(6)退出条件:当游戏积分到达指定分数,游戏退出。


代码展示

主类 :Demo类

package Demo;public class Demo0 {}

MyPanel类

构造方法

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 

定时器执行方法

@Override	public 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();	}		@Override	public void keyReleased(KeyEvent arg0) {		// TODO Auto-generated method stub			}	@Override	public void keyTyped(KeyEvent arg0) {		// TODO Auto-generated method stub			}}

框架Ui类

package Demo;import javax.swing.JFrame;public class Ui {	public static void main(String[] args){		JFrame frame=new JFrame("无尽版贪吃蛇");		frame.setSize(1500, 900);		frame.setLocationRelativeTo(null);//居中显示		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		frame.setResizable(true);		frame.add(new MyPanel());		frame.setVisible(true);	}}

项目结构

本程序用于初学者学习,共封装三个类,分别是Demo类,MyPanel类,框架Ui类,结构简单,所有方法均在MyPanel类中实现。 


总结

本游戏的设计思路类似于游戏“贪吃蛇大作战”,程序在一些功能的实现上还存在许多不足,但该项目的实现对Java新手的实战能力有很大的提升。

在使用Java编写该项目时遇到了很多问题,在解决问题时,可以对java的面向对象编程有更加深入的理解和认识。


本项目在一定程度上还有缺陷,仅用于初学者学习,欢迎各位指正。


 🥰以上就是本篇博客的全部内容,如果对你有用麻烦关注点赞收藏三连走一波!
👋如有问题欢迎留言,如有错误烦请指正,期待你的评论!
👨‍💻个人主页: 青00 (一起学Java)的博客_CSDN博客-一起学Java,Java领域博主

🤳我的《一起学Java》板块持续更新中,欢迎各位编程爱好者前来观看!

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1097422.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【Java实现贪吃蛇大作战小游戏(完整版)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2