LibGDX框架扩展与代码重构实践
1. LibGDX库特性回顾
LibGDX库具备众多强大特性。从游戏程序的生命周期来看,其各个阶段由遵循特定命名规范的方法执行,这些方法受接口约束。在处理键盘输入时,可借助Gdx类;封装游戏实体数据则能使用Sprite类或Actor类。Stage类可用于管理Actor实例,还能对Actor类进行扩展以增强功能。
通过Actions类提供的基于值的动画和Animation类的基于图像的动画,能让演员(Actor)在视觉上更具吸引力。借助Label、LabelStyle和BitmapFont类,可在第二个Stage上创建用户界面。此外,还能增大游戏世界的规模,并利用与Stage关联的Camera显示游戏世界的正确部分。Screen接口可用于创建独立于游戏玩法代码类的开始菜单,Game类则负责管理多个屏幕。
2. 扩展框架的目的与思路
以“Cheese, Please!”游戏代码为例,发现实现Screen接口的类包含相似的数据(如Stage对象)并执行相似的任务(如调用阶段的act和draw方法)。为了减少代码重复、提高代码的可理解性和可维护性,需要对代码进行重构。同时,为这些类引入新功能:
- 处理离散输入事件的能力,即按键或点击鼠标按钮时仅发生一次的操作。
- 暂停游戏的能力,需使用布尔变量paused来确定游戏是否当前暂停,并提供相关辅助方法,如isPaused、setPaused和togglePaused。
- 调整窗口大小并使游戏世界实体相应缩放的能力。
为此,创建一个名为BaseScreen的新类,用于管理数据并处理所有扩展Screen类的通用任务。其他以游戏玩法为
超级会员免费看
订阅专栏 解锁全文
79

被折叠的 条评论
为什么被折叠?



