这篇要讲的是在开发过程中,我想到的一个批量刷建筑材料信息给建筑单位的辅助配表工具。
它(魔方工具)要解决的问题是这样的:就拿墙来举例吧,墙在建造到固定的位置的时候,要把自己提供的连接位置刷新到建筑单位里。这样又带来了一个问题,假如墙的上边是一个提供的连接位置1(建筑单位的定义位置为准),那他就会把当前所在的建筑单位的1号位置暴露。之后比如有一个浮动的天花板(也就是建筑时候,玩家当前操作的天花板),需要1、2、3、4其中一个位置才能满足建造。这时正好墙提供了建筑单位的1号位置。因此天花板可以在当前位置建造。
有没有发现有个问题,就上面描述的情形是天花板和墙同时在同一个建筑单位里。按实际的策划期望或者实际情况,这个墙的上边同时给4个建筑单位提供了连接位置。如图:
所以。假如当前的墙在右下方的建筑单位里,边最终要给右下的建筑单位提供1号位,左下提供3号,左上提供7号,右上提供5号。
这么看的话,其实这些位置都是在游戏运行前就是明确的,所以我们可以通过一个配表的形式来进行对应关系的模拟,在程序运行的时候,直接读表就知道刷新哪里的信息了。
魔方出场。就上面描述的内容我们可以使用一个3阶魔方(这个很重要,后期多建筑块也要多次用它来获取统一标准的运算参数)来进行处理。首先是位置标号,这个上面已经有了1-8。接下来是对魔方进行标号,这个怎么方便怎么来,一层一层的标号就行。如图:把27个都进行标号,这个随便标,我当时还玩的比较麻烦,按轴和旋转进行标号的。原因是因为本来我以为用不了27个没想到最后都得用。就变成这样了,结果就是配表不舒服吗?我觉得也没有,这个内在规律也不好把握。总之把标号和位置对应好就行。
我随便表一个做个示范吧:就那刚才那个墙做吧。
我们配表规则是这样的,当前建筑材料位置标号→目标建筑单位标号→目标建筑单位里的实际位置。只要确保是唯一映射的就行。
如图,就应该是:
1→5→1; 2→5→2; 3→5→3; 4→5→4;5→5→5;6→5→6;7→5→7;8→5→8;1→6→3;1→15→7;1→14→5;2→8→4;2→17→8;2→14→6; 3→22→5;3→23→7;3→4→1; 4→2→2;4→20→6;4→23→8;
这样我们就可以通过当前配表,找到共同有占用位置的建筑单位,进而通过建筑单位位置标号和标号的组合查到,对应的相邻共同占用位置的目标相邻建筑单位实际的位置是那个。进而对其进行信息刷新。