结束 Java2D 游戏:自定义字体和透明 PNG

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

前一阵子(原来是大约 8 年前)我开始制作一个简单的任天堂 游戏风格的 2d 游戏,并观看了 1980 年代流行的液晶游戏,但我从未完全完成它。

我挖掘了源代码并将其以其原始状态提交给了 github,我最后是如何离开它的,然后查看了最后几个问题的总结并添加了最后的润色。

这是游戏的 源代码 ,这是我在开发游戏时从游戏中提取的通用 2d 游戏框架的 源代码 这里 这里 有几篇我积极开发它时的帖子。

动画中有几个我从未修复过的错误,我想稍微完善一下。

它从来没有真正具有过时的单色液晶显示器的外观

是的,所以我首先更改了背景(使用 颜色滴管 从在线照片中选择颜色),但后来意识到没有图像是透明的所以它最终看起来像这样:

请注意,左上角的银行现在更新了第一个精灵以增加透明度。我通过按 这里的简单步骤 在 gimp 中添加一个 alpha 层来做到这一点。我更新了每个图像精灵,将它们重新保存为带有透明层的 png。

最终结果现在看起来像这样:

lcd段字体来自 http://www.styleseven.com/ 。要加载自定义字体,请使用:


 ge = graphicsenvironment.getlocalgraphicsenvironment();
ge.registerfont(font.createfont(font.truetype_font, system.class.getresourceasstream("/fonts/digital-7.ttf")));

然后当你需要使用它时,使用它的名称创建一个新字体,你可以用它代替任何常规系统字体:


 ge = graphicsenvironment.getlocalgraphicsenvironment();
ge.registerfont(font.createfont(font.truetype_font, system.class.getresourceasstream("/fonts/digital-7.ttf")));

游戏的更新结果在 这里 ,2d 游戏引擎 在这里