Java 2D 游戏引擎开发(一)

本文介绍了一位开发者如何基于Java的AWT和Swing开发2D游戏引擎,灵感来源于一本《Java游戏编程》的书籍。原版引擎主要用于瓦片游戏,包括图形、输入、声音和测试等模块。开发者计划重构引擎,建立通用游戏循环抽象类,增加背景和深度效果,并抽象出游戏对象的父类和接口,以实现更复杂的游戏画面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前就想用java做桌面端游戏,基于awt和swing,这样可以在轻易的跨平台运行,同时还比Python,Javascript之类的高效。不过很可惜,一直没有找到一个合适的java写的2d游戏引擎。前几天偶然发现了一本书,科学出版社出版的《Java游戏编程》,译自David Brackeen的同名作品。这本书较为细致地从awt动画讲起,一直讲到用java写3d引擎。扫完一眼书后,十分激动之余,不由得想自己写一个基于书上的简易2d引擎的扩展版本。

因为这个引擎是遵循BSD的,所以我直接将它移到了我的项目里进行改造。原版引擎主要是用于制作瓦片游戏(TileGame),包含以下几个版块:

  1. graphics -- 包括简易的动画,精灵和屏幕管理器
  2. input -- 包括输入管理器和游戏中的动作事件
  3. sound -- 这块就复杂多了,包括了Midi播放器,声音管理器和各种过滤器,实现了立体的声音效果
  4. test -- 包括一个游戏循环的原型
  5. tilegame -- 包括一个游戏管理器(继承自test里的游戏原型),资源管理器,瓦片地图,瓦片地图渲染器以及一些实例的精灵
  6. util -- 包括一个特殊的输入流和一个自制的线程池
这个引擎很明显都不能制作稍微复杂一点的游戏(虽然有着十分完备的声音系统),同时也缺乏UI控件的支持。那么我准备改进以下方面
  1. 重构包架构,比如将test里的游戏原型规范后建立一个新板块,作为一个通用抽象父类使用
  2. 新建一个背景版块,将瓦片地图和其渲染器移到这个版块里,同时增加一个卷轴式的有深
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值