在沙盒游戏里,能自由建造是很重要的特点,比如说风靡全球的《我的世界》,用一个个方块就能搭建出规模宏大的世界。甚至有偏激的人说,没有自由建造,就不是一个真正的沙盒游戏。的确,沙盒游戏的魅力有很大一部分是能自由构建一个游戏世界。看着自己一砖一瓦搭建起一个城堡世界会很有成就感的。
现如今的手游,大多数就是一个争斗和炫耀的世界。不管是传奇类的狂霸拽酷,还是连连看,消消乐等好友排名,就是消费国人的虚荣心。其实,游戏是第九艺术,要上升到艺术的角度。在游戏里,玩家需要一种情感的宣泄和寄托以及体验。
说了这么多,还是回到正题。我是如何在自己编写的独立游戏《中世纪之路》里实现建筑物的摆放呢?
在实现这个功能的时候,我首先考虑的不是代码。而是考虑其他游戏是如何实现这样功能的,有那些可以借鉴的地方。我首先想到了《魔兽争霸》里建筑物的摆放,可以自由的拖放。然后想到了《部落冲突》(简称COC)里的建筑放置方式,在COC里建筑是按格子摆放的,在一个平面上。
在我的游戏《中世纪之路》里,我既不想让玩家一砖一瓦的搭建建筑,又想让玩家一下就把建筑整体放置到地上了。我觉得像搭积木那样,既可以节省玩家时间,又有建造的乐趣。选定了这种方式后,我就要考虑建筑模块的数据储存方式了:我需要储存单个模块的三维空间里的坐标值(x,y,z的值),同时为了让模型选择,我还需要储存模型的旋转角度数。
然后,我还需要考虑如何用鼠标去执行这个操作。我构想的方案是:点击背包里的物品后,一个模型就动态产生,然