【GUI】-- 13 贪吃蛇小游戏之食物及成绩判断
GUI编程
04 贪吃蛇小游戏
4.4 第四步:食物及成绩判断
首先,添加食物与分数的数据定义:
//食物的坐标int foodX;int foodY;Random random = new Random();//积分面板数据结构int score;
在初始化方法中,添加(画出)食物与分数:
//将食物随机分布于游戏界面foodX = 25 + 25 * random.nextInt(34);foodY = 75 + 25 * random.nextInt(24);score = 0; //定义初始得分
绘制静态面板中,画出积分面板、食物,并增加游戏失败设定显示的语句:
//画出积分面板g.setColor(Color.white);g.setFont(new Font("宋体", Font.BOLD, 18));g.drawString("长度 " + length, 750, 30);g.drawString("得分 " + score, 750, 55);//画出食物Data.food.paintIcon(this, g, foodX, foodY);//绘制当前游戏状态if (!isStart) {g.setColor(Color.white);g.setFont(new Font("宋体", Font.BOLD, 40));g.drawString("按下空格开始游戏", 270, 300);}if (isFail) {g.setColor(Color.red);g.setFont(new Font("宋体", Font.BOLD, 40));g.drawString("游戏失败,按下空格重新开始", 220, 300);}
在键盘监听事件中,添加空格对于游戏失败之后重新开始游戏的判断;同时,改进当前蛇头方向与按键方向相反时新的蛇头方向的判定:
//键盘监听事件@Overridepublic void keyPressed(KeyEvent e) {int keyCode = e.getKeyCode(); //获取键盘按键if (keyCode == KeyEvent.VK_SPACE) {if (isFail) { //重新开始isFail = false;init();} else { //正常开始isStart = !isStart;repaint();}}//键盘监听到按键后画上对应方向的蛇头if (keyCode == KeyEvent.VK_UP && !direction.equals("D")) {direction = "U";} else if (keyCode == KeyEvent.VK_DOWN && !direction.equals("U")) {direction = "D";} else if (keyCode == KeyEvent.VK_LEFT && !direction.equals("R")) {direction = "L";} else if (keyCode == KeyEvent.VK_RIGHT && !direction.equals("L")) {direction = "R";}}
游戏事件的监听中,添加是否吃到食物与游戏失败的判定:
//判断蛇头是否吃到食物if (snakeX[0] == foodX && snakeY[0] == foodY) {length++;foodX = 25 + 25 * random.nextInt(34);foodY = 75 + 25 * random.nextInt(24);score += 10;}//失败判定for (int i = 1; i < length; i++) {if (snakeX[0] == snakeX[i] && snakeY[0] == snakeY[i]) {isFail = true;break;}}
运行结果:
游戏默认界面:

游戏运行中:

游戏失败:

至此,简单的贪吃蛇小游戏已全部编写完毕。
相关文章:
【GUI】-- 13 贪吃蛇小游戏之食物及成绩判断
GUI编程 04 贪吃蛇小游戏 4.4 第四步:食物及成绩判断 首先,添加食物与分数的数据定义: //食物的坐标int foodX;int foodY;Random random new Random();//积分面板数据结构int score;在初始化方法中,添加(画出)食物与分数&…...
洗地机哪个牌子好用?洗地机选购攻略
传统的清洁方式都是扫把拖把的结合,既繁琐也劳累,每次清洁完后还得累的腰酸背痛的,像厨房这种地方甚至会不容易清洁干净,总感觉地板灰蒙蒙的。洗地机的诞生就很好的解决了这些问题,不用一遍遍的重复扫地拖地擦地&#…...
节能灯和led灯哪个更护眼?精选高品质的LED护眼台灯
节能灯和LED灯相比,我认为LED灯会更加护眼一些,不过想要更护眼建议选择LED的护眼台灯会更好! 大家都知道光亮对于我们来说是非常重要的,尤其是夜晚的时候,往往要借助一些灯具来提供充足的照明。对于孩子而言࿰…...
大数据管家 DataSophon 1.2介绍
DataSophon 1.2...
vue实现爱心形状的复选框
目录 HTML代码: CSS代码: Vue代码: 这个例子使用了CSS来创建一个爱心形状的复选框,并使用Vue来控制其选中状态。点击复选框时,将调用toggleChecked方法来切换checked属性的值,以控制复选框的状态。 以下…...
珠江啤酒坚持创新,“酿”造电子化采购平台
珠江啤酒 广州珠江啤酒股份有限公司(简称“珠江啤酒”)是一家以啤酒酿造产业和啤酒文化产业“双主业”协同发展、包装产业配套发展的大型现代化国有控股企业。2010年,在深交所上市,下属企业16家,其中啤酒企业12家&…...
数据仓库模式之详解 Inmon 和 Kimball
目录 一、前言 二、企业信息工厂(Inmon) 2.1 概念 2.2 主要组件 2.3 流程 三、多维数据仓库(Kimball) 3.1 概念 3.2 核心组件 3.3 流程 四、异同及用途对比 4.1 异同对比 4.2 特征比较 一、前言 大部分关于数据仓库构建…...
斐波那契数列数列系列问题详解
斐波那契数列数列是我们学习递归的入门问题,是一种非常经典的题型,也衍生出了一些更复杂的题型,这一节就让我们彻底理解斐波那契数列系列问题。 一、概念介绍 1、什么是斐波那契数列? 斐波那契数列(Fibonacci sequenc…...
Day38力扣打卡
打卡记录 网格中的最小路径代价(动态规划) 链接 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])f [[0x3f3f3f3f3f] * n for _ in range(m)]f[0] grid[0]for i i…...
【C语言:深入理解指针二】
文章目录 1. 二级指针2. 指针数组3. 字符指针变量4. 数组指针变量5. 二维数组传参的本质6. 函数指针变量7. 函数指针数组8. 转移表9. 回调函数10. qsort函数的使用与模拟实现 1. 二级指针 我们知道,指针变量也是变量,它也有自己的地址,使用什…...
前端实现表格生成序号001、002、003自增
我们最终想要实现的效果如图,从后端获取数据之后,不使用data中的id,而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…...
【Django-01】 视图函数和视图类
视图函数 作用详解视图函数的特点视图类实际开发怎么用一个无意义的demo 作用 用于返回给前端数据详解 def list(request):"""1.普通的视图函数 request是HttpRequest 函数2.且必须用request.GET|request.POST 指定方法是什么方法3.返回值不能用 rest_framewor…...
编译安装报错:configure: error: cannot guess build type; you must specify one
1、编译安装报错 configure: error: cannot guess build type; you must specify one 该报错信息翻过过来的意思是:无法猜测编译 操作系统类型,请指定一个 2、解决方法 在原本的编译安装语句后面加上一句: “--buildarm-linux ” ,这句话…...
2311rust,到66版本更新
1.60.0稳定版 基于源码的代码覆盖率 rustc中已稳定支持基于LLVM的覆盖率检测.可用-Cinstrument-coverage重构代码,如: RUSTFLAGS"-C instrument-coverage" cargo build之后,运行生成的二进制文件,它在当前目录中生成一个default.profraw文件.环境变量可覆盖路径和…...
JOSEF约瑟 过电流继电器 JL15-300/11 触点形式一开一闭 板前接线
系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15-150/11电流继电…...
postman设置接口关联这样做,薪资直接涨3k
postman设置接口关联 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。 在postman中实现关联操作的步骤如下: 1、利用postman获取上一个接口指定的返回值…...
Java常见的bug
Java是一种强类型、面向对象的编程语言,有一些常见的bug或错误类型,尽管具体的bug会因项目和代码的不同而有所差异。以下是一些Java开发中常见的bug类型: 空指针异常(NullPointerException): 尝试在一个空对象上调用方法或访问属性时会引发空指针异常。这通常发生在没有对…...
gitea仓库镜像同步至gitlab
1、参考文档:仓库镜像 | Gitea Documentation 2、错误一:账号密码错误问题 解决方法: 出现以上错误为第三步用户名(Oauth2应用名称)或者密码(Gitlab个人访问令牌)错误。 1)如下图1…...
服务器不备案的影响
服务器不备案的影响 不备案,不能解析域名。 但凡你的域名绑定到的是国内地址,你不备案,这个域名解析未来就可能会失效。 (你借用的其它网站的子域名情况除外,因为他们的网站本身主域名有可能已经备案。) …...
5 个适用于 Linux 的开源日志监控和管理工具
当Linux等操作系统运行时,会发生许多事件和在后台运行的进程,以实现系统资源的高效可靠的使用。这些事件可能发生在系统软件中,例如 init 或 systemd 进程或用户应用程序,例如 Apache、MySQL、FTP 等。 为了了解系统和不同应用程序…...
微生物组数据分析终极指南:如何用microeco包快速完成生态统计分析
微生物组数据分析终极指南:如何用microeco包快速完成生态统计分析 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco microeco是一个功能强大的R语言包…...
思源宋体TTF终极指南:7种字重开源字体快速配置与应用
思源宋体TTF终极指南:7种字重开源字体快速配置与应用 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 思源宋体TTF作为Adobe与Google联合开发的开源中文字体,提供…...
9字重开源字体解决方案:Outfit字体从入门到精通实战指南
9字重开源字体解决方案:Outfit字体从入门到精通实战指南 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts 在当今数字化品牌设计时代,一款优秀的字体不仅关乎美观࿰…...
手把手调试UEFI文本模式:用OVMF和QEMU探索GraphicsConsoleDxe支持的行列数
深入解析UEFI文本模式:从像素到字符的转换机制 在UEFI固件开发领域,图形显示系统的调试一直是工程师们面临的核心挑战之一。当我们在OVMF模拟环境中看到清晰的命令行界面时,背后实际上经历了一系列复杂的像素到字符的转换过程。本文将带您深…...
别再只会用top了!这5个Linux内存监控命令,帮你快速定位服务器卡顿元凶
深度剖析Linux内存监控:5个高阶命令解决服务器卡顿难题 当服务器突然响应迟缓,终端操作卡顿得像老式打字机,大多数工程师的第一反应是打开top命令。这个经典工具确实能提供基础的系统负载概览,但就像用体温计诊断复杂疾病一样&am…...
如何使用GPT-Repository-Loader:将代码仓库转换为LLM友好格式的完整指南
如何使用GPT-Repository-Loader:将代码仓库转换为LLM友好格式的完整指南 【免费下载链接】gpt-repository-loader Convert code repos into an LLM prompt-friendly format. Mostly built by GPT-4. 项目地址: https://gitcode.com/gh_mirrors/gp/gpt-repository-…...
D14: 周复盘:人是核心,工具是杠杆
文章目录 D14: 周复盘:人是核心,工具是杠杆 🎯 本周回顾:都发生了什么? 第一周的大事记 数据不会说谎 核心复盘内容 复盘维度一:人的层面——谁在进步,谁在旁观? 复盘维度二:工具层面——哪些工具真的在产生价值? 复盘维度三:流程层面——AI 改变了什么,没改变什么…...
WarcraftHelper终极优化指南:5个简单步骤让魔兽争霸3从卡顿到180帧流畅运行
WarcraftHelper终极优化指南:5个简单步骤让魔兽争霸3从卡顿到180帧流畅运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为…...
如何从零打造你的第一把模块化机械键盘:HelloWord-Keyboard终极指南
如何从零打造你的第一把模块化机械键盘:HelloWord-Keyboard终极指南 【免费下载链接】HelloWord-Keyboard 项目地址: https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard 你是否厌倦了千篇一律的机械键盘设计?是否曾幻想拥有一把能完全按照自…...
【稀缺首发】2024 Dev Containers兼容性矩阵图:Node.js 20/Python 3.12/Rust 1.78全版本支持状态+已验证镜像清单
更多请点击: https://intelliparadigm.com 第一章:Dev Containers兼容性矩阵图的权威发布与核心价值 Dev Containers(开发容器)正成为现代云原生开发工作流的关键基础设施。为统一生态标准、降低环境配置成本,OpenDev…...
