UID82897性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-7-23最后登录1970-1-1
|
欢迎收看大型连续剧——糖果大陆1.2.0开发进度第4期。
相比于昨天,今天的情况可就有点令人失望了。今天我把所有连接结构都做好了,也做了一个(临时充当大厅的)房间和第二个主要大厅。然后,我就把所有这些东西导出了。
昨天说的瓶颈果然出现了,虽然连接链确实能在结构加载时旋转或翻转,但是它里面的命令却不会变化。还有一个问题,结构是按照东南方向(X+,Z+)加载的,命令里指定的点是结构西北角的点。还有结构到底绕哪个点旋转也不清楚,翻转倒是简单得多。
为此,我设置了4个条件,每个条件对应一个方向,这下面又有单独执行的命令。连接结构的底面不是正方形,有的甚至不在同一高度,所以操作复杂。
最难的地方在于,如何知道这些命令中结构加载的相对坐标。这可没什么好办法,那就试呗!我画了一个图,标注上X+,X-,Z+,Z-对应的相对坐标差值,再写上结构的方向等数据。做了4张图,对应4个方向,我就根据这些图在脑海中想这些结构的相对坐标。我在脑海中构建一个空间,渲染出大厅和连接结构,然后尝试把连接结构滑动到大厅的出口处...每次滑动,都有一条直线标注着偏移量,汇总到相对坐标里。
就这样,我把所有数据依次输入到了代码中。还有一个问题:怎么让游戏在认为结构足够大时停止生成?相比刚才的问题,这就太简单了。创建一个计分板(structure_times)和两个虚拟玩家(counter、max_count),其中counter就是目前生成的结构数,max_count就是最大结构数。
生成结构时...
counter分数加1...
生成检测...
counter分数大于max_count时...
生成结束房间...
一番代码猛如虎,这部分算是完成了。然后,我怀着激动的心情打开游戏,输入- /structure load chocolate_dungeon:root 0 319 0
复制代码 来加载根结构,执行命令...
屏幕右方出现计分板数据,max_count的分数是16,counter的分数迅速增加...
约1秒后,counter的分数到达16,这个虚拟玩家没有了作用,就被删除了。
那么最后生成的结果就是...(???啊这...)
结论是:相对坐标算错了。
各种结构交杂在一起,互相叠加,互相插入,让本就迷宫似的结构情况雪上加霜。
所以说,心急吃不了热豆腐。看来相对坐标、旋转参数和翻转参数还需要测试,不是动动脑子能想出来的。 |
|