Conan建筑实现 —— 魔方工具
這篇要講的是在開發(fā)過程中,我想到的一個(gè)批量刷建筑材料信息給建筑單位的輔助配表工具。
? ? ? ? 它(魔方工具)要解決的問題是這樣的:就拿墻來舉例吧,墻在建造到固定的位置的時(shí)候,要把自己提供的連接位置刷新到建筑單位里。這樣又帶來了一個(gè)問題,假如墻的上邊是一個(gè)提供的連接位置1(建筑單位的定義位置為準(zhǔn)),那他就會(huì)把當(dāng)前所在的建筑單位的1號(hào)位置暴露。之后比如有一個(gè)浮動(dòng)的天花板(也就是建筑時(shí)候,玩家當(dāng)前操作的天花板),需要1、2、3、4其中一個(gè)位置才能滿足建造。這時(shí)正好墻提供了建筑單位的1號(hào)位置。因此天花板可以在當(dāng)前位置建造。
? ? ? ? 有沒有發(fā)現(xiàn)有個(gè)問題,就上面描述的情形是天花板和墻同時(shí)在同一個(gè)建筑單位里。按實(shí)際的策劃期望或者實(shí)際情況,這個(gè)墻的上邊同時(shí)給4個(gè)建筑單位提供了連接位置。如圖:
? ? ? 所以。假如當(dāng)前的墻在右下方的建筑單位里,邊最終要給右下的建筑單位提供1號(hào)位,左下提供3號(hào),左上提供7號(hào),右上提供5號(hào)。
? ? ? 這么看的話,其實(shí)這些位置都是在游戲運(yùn)行前就是明確的,所以我們可以通過一個(gè)配表的形式來進(jìn)行對(duì)應(yīng)關(guān)系的模擬,在程序運(yùn)行的時(shí)候,直接讀表就知道刷新哪里的信息了。
? ? ? ?魔方出場。就上面描述的內(nèi)容我們可以使用一個(gè)3階魔方(這個(gè)很重要,后期多建筑塊也要多次用它來獲取統(tǒng)一標(biāo)準(zhǔn)的運(yùn)算參數(shù))來進(jìn)行處理。首先是位置標(biāo)號(hào),這個(gè)上面已經(jīng)有了1-8。接下來是對(duì)魔方進(jìn)行標(biāo)號(hào),這個(gè)怎么方便怎么來,一層一層的標(biāo)號(hào)就行。如圖:把27個(gè)都進(jìn)行標(biāo)號(hào),這個(gè)隨便標(biāo),我當(dāng)時(shí)還玩的比較麻煩,按軸和旋轉(zhuǎn)進(jìn)行標(biāo)號(hào)的。原因是因?yàn)楸緛砦乙詾橛貌涣?7個(gè)沒想到最后都得用。就變成這樣了,結(jié)果就是配表不舒服嗎?我覺得也沒有,這個(gè)內(nèi)在規(guī)律也不好把握。總之把標(biāo)號(hào)和位置對(duì)應(yīng)好就行。
?
? ? ? ? ?我隨便表一個(gè)做個(gè)示范吧:就那剛才那個(gè)墻做吧。
? ? ? 我們配表規(guī)則是這樣的,當(dāng)前建筑材料位置標(biāo)號(hào)→目標(biāo)建筑單位標(biāo)號(hào)→目標(biāo)建筑單位里的實(shí)際位置。只要確保是唯一映射的就行。? ?
如圖,就應(yīng)該是:
? ? ? ? ?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;
?
這樣我們就可以通過當(dāng)前配表,找到共同有占用位置的建筑單位,進(jìn)而通過建筑單位位置標(biāo)號(hào)和標(biāo)號(hào)的組合查到,對(duì)應(yīng)的相鄰共同占用位置的目標(biāo)相鄰建筑單位實(shí)際的位置是那個(gè)。進(jìn)而對(duì)其進(jìn)行信息刷新。
?
?
總結(jié)
以上是生活随笔為你收集整理的Conan建筑实现 —— 魔方工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】环境变量|查看环境变量的方
- 下一篇: 计算机辅助药物设计试题,计算机辅助药物设