随着科技的发展,现在手机的功能不仅仅是简单的接打电话,收发短信,更多的用户希望在空座闲暇之余玩玩可随时携带的仪器休闲娱乐,因此,为了迎合众多用户的需求,并适应现在手机,我们开发出一个适合各个年龄的贪吃蛇小游戏。
贪吃蛇,之所以取这样的名字,其中用意很明显,贪吃蛇其实并不贪,他是人不断向前追求的象征,就像现代人们只有不断向前,才能得到自己想要的,而食物也是随机出现的,就像现在社会存在的机会很多,而我们要有目标才会成功。

本游戏采用JavaGUI技术来实现贪吃蛇的小游戏,主要实现蛇头获取食物,计分数,计关数等功能,使用JAVA语言,应用GUI的设计模式来设计系统,使系统结构清晰,运行速度快、稳定和安全,并且易于开发和维护。开发工具采用强大的Ecplise,从而开发出此款小游戏

关键词:JAVA 贪吃蛇 Ecplise

第一章  

1.1引言

贪吃蛇游戏是一款经典的小游戏,由于它简单有趣,因而得到了广泛的流行,男女老少都十分适合。俄罗斯方块主要是以随机方块的生成,方块的旋转,方块的移动,方块的消除以及游戏区域的不断刷新为一体,涵盖了贪吃蛇游戏的整个运行流程。现在越来越多的游戏涌入我们的视野,丰富和影响着我们的生活。选择和做为题目的主要原因是做游戏这个流程业务比较符合我以后的学习编程的工作发展方向。从技术上来讲,贪吃蛇的设计工作复杂且富有挑战性,它包含的内容多,设计的知识广泛,与图形界面的联系大,包括界面的显示和不断刷新等,在设计的时候,要运用到各方面的知识,这对于我的编程逻辑以及专业认知是有很大帮助的。
通过该游戏,游玩者可以体验到简易又易于上手的游戏机制,同时不断加速的方块下落也在考验着游玩者的脑力,为游玩者提供娱乐的同时,可一定程度地锻炼自己的反应,是被不少人称为的一款“益智游戏”。

1.2系统目标

本次设计的贪吃蛇游戏功能齐全,包括蛇吃食物、蛇身碰撞,所得分数,所过关数,蛇碰墙壁等游戏功能,真正实现便捷的,简单的游戏。

贪吃蛇游戏需求分析

2.1主要事件的监听接口

2.2主要成员变量

2.3主要方法

贪吃蛇游戏总体设计

3.1设计思路

首先我们绘制窗口,然后我们进行所需要的网格绘制,之后我们进行准备工作,创建一个所有所需要的父类,之后是游戏工具类的编写,然后我们画出蛇的头部,然后让蛇头简单的移动,然后添加键盘监视器,用键盘控制蛇的移动,当蛇头撞墙时的越界处理,之后为蛇头添加蛇身,绘制完蛇,再来创建食物的随机生成,和当食物被蛇吃掉后的位置随机生成,当蛇吃掉食物之后蛇身体会增长,当食物被吃掉一个就会得一分,将分数面板画在窗口,然后绘制暂停和开始游戏的提示语,之后设置游戏通关的判定,由于图片是绘制的所以会闪烁,所以我们利用双缓存问题来解决,之后在添加游戏关卡,从而形成一个完整游戏其中所运用了数据类型,判断语句,循环结构,集合,简单窗口的创建,图形图片的绘制,双缓存技术,键盘监听事件,物体碰撞的判断

3.2 JAVA的源文件和其功能

3.3功能设计

功能:首先进行画面设计进行绘制窗口,分为游戏界面,再然后进行蛇的构造,在进行食物的构造,在游戏的过程中,进行蛇的移动的功能,蛇吃食物,和食物的重新生成的功能,和蛇的死亡判定,和在游戏中相关提示语的绘制,和进行关数的参加,和通关条件的判断。

3.4整体的设计

3.4.1整个游戏分为两个模块来设计,分为游戏主界面模块和游戏控制模块

第四章    

4.1开发工具的选用及其介绍

4.1.1Eclipse

Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。

Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以GPL发布,第三方组件有各自自身的许可协议

4.1.2Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

4.2功能的详细设计

4.2.1创建窗口和网格的绘制

创建一个窗口方法,在其中设置长宽,设置其在中心区域,设置其是否可见,在利用if语句在窗口中画出横线与竖线,之后在窗口中形成网格的绘制

4.2.2键盘控制蛇的方向

(1)相反的方向

和上一次移动的方向相反的方向成为反方向,这种输入应该忽略,这样可以防止蛇从自己的身体穿过

(2)无效方向

在蛇的这一次移动之后和下一次移动之前这个时间间隔内输入多个非相反的方向,只有最后一个是有效的,其他方向都是无效的方向

(3)添加键盘监视器,利用W,S,A,D控制蛇移动的方向

4.2.3食物的随机生成

利用Random生成随机数,利用if语句食物随机在网格内生成,当被吃掉后,继续获取生成食物的方法,然后食物随机生成

4.2.4蛇头与蛇身体的碰撞

利用if语句判断,获取蛇头的坐标和蛇身体坐标,当蛇头与蛇身的坐标相同时,则表示蛇头与蛇身相撞,则提示游戏失败,按空格游戏重新开始

4.2.5游戏的开始暂停和提示语

添加键盘监视器,利用switch开关语句当按下空格的时候会暂停游戏并且弹出提示语,在按下空格会开始游戏

4.2.6双缓存解决画面闪烁问题

由于窗口中的元素是绘制出来的,每次重新绘制的时候要一个一个的绘制,所以我们要重新创建空的图片,将绘制的元素放在空图片由空图片一次性绘制到窗口,这样游戏窗口就会不闪烁

4.2.7 游戏越界后的处理

获取蛇头的坐标当蛇头的坐标大于窗口的坐标时,此时我们利用if语句,当坐标大于窗口的坐标时,蛇头会从相反的方向出来

4.2.8蛇的移动

蛇向前移动一步,可以看作蛇头前面增加一个节点,蛇的尾巴上少了一个节点

4.2.9存储蛇身的数据

因为由于要区分蛇头与蛇尾,因此这个数据结构是有序的,另一方面我们需要经常的获取最后一个节点,所以LinkedList最合适,因为有getLast()方法

4.2.10 吃到食物的判定

通过判定坐标是否重合来判断蛇头是否和食物重新重合就可以,因为蛇的身体都是蛇头走过的地方,蛇吃掉食物后,身体就会变长

4.2.11 测定结果

程序代码

https://mp.csdn.net/mp_download/manage/download/UpDetailed

Java游戏-贪吃蛇相关推荐

  1. java游戏贪吃蛇_Java实现贪吃蛇游戏

    最近JAVA和JSwing上手练习了一下贪吃蛇,供大家参考,具体内容如下 欢迎交流和加入新的内容 用到了JSwing,下面是一些具体的思路 实现 * 蛇: 采用单链表记录首尾,整个蛇被分为lattic ...

  2. java贪吃蛇不能回头,儿时回忆!泪流满面,Java 实现贪吃蛇游戏的示例(附代码)...

    image.png image.png java实现贪吃蛇游戏需要创建一个桌面窗口出来,此时就需要使用java中的swing控件 创建一个新窗口 JFrame frame = new JFrame(& ...

  3. 简易贪吃蛇小游戏java版_用GUI实现java版贪吃蛇小游戏

    本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public stat ...

  4. 手机java做贪吃蛇_如何用Java写一个贪吃蛇游戏

    这是一位拓胜学员用Java写贪吃蛇游戏的心得:今天课程设计终于结束了自己学java没以前学C+那么用功了觉得我学习在哪里都是个开口向上的抛物线,现在应该在右半边吧,好了进入正题. 写java贪吃蛇也是 ...

  5. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)

    目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1  ...

  6. JAVA简易贪吃蛇游戏实现

    JAVA简易贪吃蛇游戏实现 自学java不久,最近看了些GUI编程,就拿贪吃蛇练个手,很基础 刚学的 也是最简易的版本.纯粹就想通过博客记录来巩固自己的学习效果. 游戏介绍 玩家通过按键控制蛇身的移动 ...

  7. Java实现贪吃蛇大作战小游戏(完整教程+源码)额外实现积分和变速功能

    大家好,我是黄小黄同学!今天给大家带来的是小项目是 基于Java+Swing+IO流实现 的贪吃蛇大作战小游戏.实现了界面可视化.基本的吃食物功能.死亡功能.移动功能.积分功能,并额外实现了主动加速和 ...

  8. 初识Java之贪吃蛇小游戏

    一.绘制静态窗口 这是一个简陋的窗口 package Snake;import javax.swing.*;public class StartGames {public static void ma ...

  9. JAVA版贪吃蛇小游戏

    这是一篇关于JAVA的贪吃蛇游戏,源代码的部分在下面正文中介绍,图片和音频的部分都放在百度云盘,需要的自行下载. 文章目录 开发环境 一.下载方法 二.运行效果展示 三.项目结构以及主程序入口 1.项 ...

最新文章

  1. python代码用c语言封装_树莓派开发ADC芯片CS1237(C语言和python库开发)
  2. 使用Apache Archiva搭建Maven Repository Server
  3. 在Dialog中实现下拉框效果并对下拉框赋自定义的值
  4. Sasha and Sticks
  5. mysql-gui怎么执行_MySQL 执行大量语句时的正确姿势? mysql *.sql ? 使用 GUI?
  6. Java常见排序算法之直接选择排序
  7. python github登陆_利用Python模拟GitHub登录!
  8. 由异常掉电问题---谈xfs文件系统
  9. 2021年中国中频等离子体激发市场趋势报告、技术动态创新及2027年市场预测
  10. OpenCart如何添加货币
  11. vue开发环境的搭建流程
  12. Mac 上设置文件共享教程
  13. 高德地图模仿微信发送位置实现拾取坐标
  14. Windows 常用软件清单
  15. 【软件构造】正则表达式合法性检测
  16. SpringMVC上传图片报400
  17. 自然语言处理数据集-20个
  18. iOS直播:评论框与粒子系统点赞动画
  19. 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
  20. oracle 远程访问配置,C#教程之Oracle 远程访问配置

热门文章

  1. android 仿小米日历 周视图 月视图切换
  2. STM32调试利器之ITM
  3. 使用微信公众号获取小程序链接
  4. 广州华锐互动:建筑施工VR虚拟仿真实训系统
  5. 产品的定义看似宽泛,那么什么是产品?产品的核心是什么呢?
  6. win10更新系统后,打开edge提示explore.exe没有注册类。已解决
  7. 原始套接字和报文格式
  8. 从“传统电商平台”到“互联网赋能生态”,大家都该学一学!
  9. html 轮播切图,JS轮播图的实现方法
  10. 12个学霸都在用的学习神器,让你的学习效率翻几倍!