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

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 54w+ 字,讲解图 2476+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 1900+ 小伙伴加入学习 ,欢迎点击围观

前一阵子(原来是大约 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 游戏引擎 在这里