java贪吃蛇学期,Java实现贪吃蛇
原文: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实现贪吃蛇相关推荐
- java超级简单贪吃蛇_java实现简易贪吃蛇游戏
本文实例为大家分享了java实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 1.封装贪吃蛇身体,抽象出贪吃蛇结点类Node,结点用ArrayList存储 import java.awt.*; pu ...
- Java学习(8):贪吃蛇游戏
根据视频编写的贪吃蛇游戏 主方法 public class Start {public static void main(String[] args) {new Yard().launch();} } ...
- 贪吃蛇项目Java实现
目录 贪吃蛇项目Java开发 一.项目概述 二.项目初步设计 1.项目总体框架 2.模块划分图 3.程序流程图 4.类的划分 5.初步设计 三.实验准备 1.学习随机数类random 2.学习Java ...
- JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)
目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1 ...
- java课程设计之小游戏贪吃蛇
"贪吃蛇"小游戏的原理(效果图如下) 下代码为页面设置(gui) import java.awt.Graphics;import javax.swing.JFrame;public ...
- 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置git环境和项目创建
[Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置git环境和项目创建 项目的逐步细分 配置git环境 创建项目后端 前后端不分离写法-url访问路径解析资源 安装vue vue文件 ...
- JAVA游戏开发-超炫酷贪吃蛇游戏源码及教程
一.前言 某日,看见隔壁家的小朋友在玩一款网络爆款贪吃蛇游戏,感觉很好玩.自己刚好正在学习JAVA编程,也想实现一个类似功能的游戏Demo练手,在网上查看了不少源码案例,全都是很古老的方块式贪吃蛇游戏 ...
- 【Java闭关修炼】SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2
[Java闭关修炼]SpringBoot项目-贪吃蛇对战小游戏-配置Mysql与注册登录模块2 传统的登录验证模式 JWT登录验证方式 下载安装依赖 创建JWTUTIL JwtAuthenticati ...
- java小游戏代码压缩包_java 贪吃蛇小游戏 源码下载
[实例简介] 使用java程序设计语言制作的一个贪吃蛇小游戏.游戏的控制模块应该做到易懂.易操作,以给玩家一个很好的游戏环境.在这个游戏的设计中,牵涉到图形界面的显示与更新.数据的收集与更新,还要应用 ...
最新文章
- linux排除多个文件,linux – 通过排除其父文件夹为多个目录创建单个tar文件
- Vim 自动文件头注释与模板定义
- pytorch笔记:09)Attention机制
- Linux新手入门:通过chmod改变文件权限--转
- 【放置奇兵】算法 酒馆攻略
- [bzoj4922]Karp-de-Chant Number
- 远程ykvm 插件移值java_Centos7 命令行下kvm安装windows,linux
- 小学生计算机按键分布图,人教版(新版)小学信息三下第2课《常用按键掌握牢》课件.ppt...
- FFmpeg源代码简单分析:avcodec_open2()
- 微信小程序首支视频广告片发布
- Win7双屏显示设置
- P3924 康娜的线段树
- 在Ubuntu上安装使用Systemtap
- java xml 空节点_java:利用xpath删除xml中的空节点
- Pod--初始化容器
- Calico BGP 功能介绍:实现
- sigmoid函数特性
- 从APP测试角度看新增长应用类型如何取得优势
- Git中pull reject和push reject
- 分享 那些经典电影的经典台词
热门文章
- Romberg积分法(MATLAB)
- 结构体内元素不确定_农作物生长发育不可缺少的肥料,微量元素肥料,如何才能合理使用...
- 浅谈前端项目打包工具webpack和gulp
- 正则 校验英文逗号字符串
- (转贴) Pascal Costanza 作品:极端片面的Lisp介绍
- Qt Safe Renderer 1.2 版发布
- liunx环境下 python使用stmplib 发邮箱
- 简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
- 用VSCode开发Spark应用
- 注入器(injector)