原文:https://www.cnblogs.com/weiXinp/p/14477510.html

游戏界面基本布局

贪吃蛇是基于JFrame的一款小游戏。它主要有两部分组成,一个是显示区域,一个是按钮区域。这两个区域都用JPanel来实现。

首先需要创建一个基于JFrame的类,例如创建一个MyFrame,让其继承于JFrame。

然后创建一个显示区域的类MyPanel,一个按钮区域的类Button,当然了这两个类都基于JPanel。

第三步:在MyFrame类中实例化两个JPanel类。并在MyFrame构造方法中设置窗体的logo、窗体的标题、窗体初始位置、窗体的大小、窗体的背景颜色、窗体的关闭方式等。

第四步:继续清空MyFrame的布局管理器、设置窗体为固定大小不可更改、添加两个区域并显示、设置键盘监听焦点(控制贪吃蛇的移动)等。

游戏显示区域

MyPanle实现思路:

在构造方法中注册键盘监听事件、设置容器的坐标及大小、设置容器的背景颜色。如果想要添加背景图片,可以重写paintComponent方法。

创建一个食物类Food,创建一个贪吃蛇类Snake,并在MyPanel里实例化这两个类。

在MyPanel里创建一个贪吃蛇的线程,并在构造方法里启动该线程。

重写paint方法,绘制容器。并设置相应的颜色、画线、调用贪吃蛇的移动方法和绘画方法、调用食物的绘画方法。

配置文件类:

定义布局所需要的行和列,定义上下左右四个方向

定义死亡检测标识、定义游戏状态检测标识。

贪吃蛇线程类:

重写线程启动的方法

在启动方法里时刻检测贪吃蛇是否死亡,如果死亡则弹出“游戏结束”的对话框。

食物类:

定义食物的坐标。

定义食物的绘画方法

当食物被吃掉后,我们需要随机生成一个位置来展示食物,因此需要一个生成随机位置的方法repair()

定义获取食物坐标的方法。在构造方法里随机生成食物的坐标

结点类:

蛇有蛇头和蛇身、蛇尾,我们用节点来实现。

创建一个结点类,属性包括所在行、所在列、上个结点、下个节点、前进方向。

在有参构造方法中初始化贪吃蛇的位置信息,指定贪吃和前进的方向。

定义绘画方法,蛇头颜色为黄色、其余为蓝色。

贪吃蛇类

创建一个贪吃蛇类,属性包括头、身、尾、食物。

定义有参构造方法,参数为食物。并初始化贪吃蛇的初始坐标、以及设置结点之间的关系。

定义绘画方法,遍历贪吃蛇的每个节点,然后把每个节点绘画出来。

定义获取贪吃蛇坐标的方法,用于获取贪吃蛇的坐标。

定义贪吃蛇的移动方法。贪吃蛇怎么移动?添加蛇头——去蛇尾——吃食物——死亡检测

定义添加蛇头的方法,设置一个Node临时变量。根据前进方向判断,如何添加蛇头。

定义去除蛇尾的方法,把蛇尾的前一个结点的后指针设置为空,把蛇尾的前一个结点设置为蛇尾即可。

定义吃食物的方法,三步走。首先判断贪吃蛇坐标和食物坐标是否重合,如果重合就添加蛇头然后重新布局食物。

定义死亡检测方法,两步走。第一步判断是否越界,第二步判断头是否和尾重合。

定义键盘控制方法。当用户按下WASD键,贪吃蛇才可改变方向移动且不能逆向移动。(比如开始向上移动,我不能直接按S键让它向下移动)。

按钮区域

创建属性:myPanel、暂停、继续、重新开始、退出。

创建带参数的构造方法,参数为myPanel.

在构造方法中设置初始位置及大小、创建四个按钮并添加。

在构造方法里注册按钮监听。

重写actionPerformed方法。检测按下按钮。

如果按下继续游戏,那么需要重写设置键盘监听焦点

如果是重新开始游戏,那么需要停止当前线程,然后重新生成蛇和食物,并把控制条件还原到初始状态。最后创建新的线程对象并启动,最后再设置键盘监听焦点。

代码获取

java贪吃蛇学期,Java实现贪吃蛇相关推荐

  1. java超级简单贪吃蛇_java实现简易贪吃蛇游戏

    本文实例为大家分享了java实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 1.封装贪吃蛇身体,抽象出贪吃蛇结点类Node,结点用ArrayList存储 import java.awt.*; pu ...

  2. Java学习(8):贪吃蛇游戏

    根据视频编写的贪吃蛇游戏 主方法 public class Start {public static void main(String[] args) {new Yard().launch();} } ...

  3. 贪吃蛇项目Java实现

    目录 贪吃蛇项目Java开发 一.项目概述 二.项目初步设计 1.项目总体框架 2.模块划分图 3.程序流程图 4.类的划分 5.初步设计 三.实验准备 1.学习随机数类random 2.学习Java ...

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

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

  5. java课程设计之小游戏贪吃蛇

    "贪吃蛇"小游戏的原理(效果图如下) 下代码为页面设置(gui) import java.awt.Graphics;import javax.swing.JFrame;public ...

  6. 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置git环境和项目创建

    [Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置git环境和项目创建 项目的逐步细分 配置git环境 创建项目后端 前后端不分离写法-url访问路径解析资源 安装vue vue文件 ...

  7. JAVA游戏开发-超炫酷贪吃蛇游戏源码及教程

    一.前言 某日,看见隔壁家的小朋友在玩一款网络爆款贪吃蛇游戏,感觉很好玩.自己刚好正在学习JAVA编程,也想实现一个类似功能的游戏Demo练手,在网上查看了不少源码案例,全都是很古老的方块式贪吃蛇游戏 ...

  8. 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2

    [Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2 传统的登录验证模式 JWT登录验证方式 下载安装依赖 创建JWTUTIL JwtAuthenticati ...

  9. java小游戏代码压缩包_java 贪吃蛇小游戏 源码下载

    [实例简介] 使用java程序设计语言制作的一个贪吃蛇小游戏.游戏的控制模块应该做到易懂.易操作,以给玩家一个很好的游戏环境.在这个游戏的设计中,牵涉到图形界面的显示与更新.数据的收集与更新,还要应用 ...

最新文章

  1. linux排除多个文件,linux – 通过排除其父文件夹为多个目录创建单个tar文件
  2. Vim 自动文件头注释与模板定义
  3. pytorch笔记:09)Attention机制
  4. Linux新手入门:通过chmod改变文件权限--转
  5. 【放置奇兵】算法 酒馆攻略
  6. [bzoj4922]Karp-de-Chant Number
  7. 远程ykvm 插件移值java_Centos7 命令行下kvm安装windows,linux
  8. 小学生计算机按键分布图,人教版(新版)小学信息三下第2课《常用按键掌握牢》课件.ppt...
  9. FFmpeg源代码简单分析:avcodec_open2()
  10. 微信小程序首支视频广告片发布
  11. Win7双屏显示设置
  12. P3924 康娜的线段树
  13. 在Ubuntu上安装使用Systemtap
  14. java xml 空节点_java:利用xpath删除xml中的空节点
  15. Pod--初始化容器
  16. Calico BGP 功能介绍:实现
  17. sigmoid函数特性
  18. 从APP测试角度看新增长应用类型如何取得优势
  19. Git中pull reject和push reject
  20. 分享 那些经典电影的经典台词

热门文章

  1. Romberg积分法(MATLAB)
  2. 结构体内元素不确定_农作物生长发育不可缺少的肥料,微量元素肥料,如何才能合理使用...
  3. 浅谈前端项目打包工具webpack和gulp
  4. 正则 校验英文逗号字符串
  5. (转贴) Pascal Costanza 作品:极端片面的Lisp介绍
  6. Qt Safe Renderer 1.2 版发布
  7. liunx环境下 python使用stmplib 发邮箱
  8. 简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
  9. 用VSCode开发Spark应用
  10. 注入器(injector)