本周主要的进度是依然是做HUD,不过本周的HUD是以物品系统的实现为主的。
首先前面做的是背包系统的大致实现,通过调整代码,看网上的相关教程以及godot文档,基本实现了能够把物品放入,取出和交换的功能,可能现在我的HUD看着很简陋,不过将来或许会使用更好的素材,让HUD变得好看许多。
背包做好之后,接着就是定义物品自身,这一块是相当有难度的,因为我将要做的游戏可能会加入多种不同的物品,各自有各自不同的功能,如果不用统一的方法加载或者卸载,可能会相当麻烦。
不过我就想到了先预定义一个Item场景,然后定义一个ItemLoader场景。Item场景作为包含了一个物品本身的容器节点,这个节点用于控制物品的状态,而ItemLoader节点,则是把具体的物品场景注册到自身的Item_list字典中。
然后利用一个根据id获取物品的方法,让ItemLoader从item_list字典中拷贝一份具体的物品场景,然后装入Item容器场景的拷贝中,传递给HUD,这样就实现了简单的获取特定物品的功能。
然后是实现物品的具体功能了,第一个物品作为专门测试用的物品,所以我给物品添加了简单的开启飞行模式功能以及简单的提供可打开控制台的功能,控制台比物品好做多了,因此很简单地就实现了。
接下来就是露营机制了,这是我的游戏能体现出特色的核心机制之一,另外一个比较具有特色的核心机制就是伙伴机制,不过露营机制实现前我打算先学习视差背景的实现,做出一个露营测试场景。(总不可能在目前的跑酷测试专用地图上露营吧)
还有给相机设置场景边界的问题,我打算写个简单的MapBorder插件解决(这样也方便随时在编辑器界面修改场景的范围)
暂无关于此日志的评论。