文章首发见博客:https://mwhls.top/4852.html。
无图/格式错误/后续更新请见首发页。
更多更新请到mwhls.top查看
欢迎留言提问或批评建议,私信不回。
汇总:Unity 记录摘要:生成连续的洞穴地图块。
随机生成连续洞穴-2023/9/5
- 之前几天一直没想好洞穴这种四通八达的怎么实现,后来灵机一动,我把四通八达的一个块改成一通二达的四个块就好了。
- 然后地下的块就直接取地面块的翻转,其它参数都不用改,效果还蛮好的。
实现代码-2023/9/4-2023/9/5
- 这部分的代码和前面的重复度比较高,有意义的只有新增的十个方向以及它们对应周围方向。
- 其它部分就是一些查缺补漏,所以只放有意义的注释。
c
/* ---------- surface direction ----------
* ┌-----┬-----┬-----┐
* │__777│_____│999__│ I label these directions with numbers
* │_7777│88888│9999_│ corresponding to the number pad positions for the block's solid area.
* │77777│88888│99999│ For example,
* ├-----┼-----┼-----┤ 1 in left-down, only left-down tiles are solid, i.e. from left to down
* │4____│55555│____6│ 4 in left, the tiles in left are solid, i.e. from up-left to down-right
* │44___│55555│___66│ 7,9 are opposite which denotes the empty area
* │444__│55555│__666│
* ├-----┼-----┼-----┤ Besides, _ means the reverse version
* │_____│_____│_____│
* │1____│22222│____3│
* │11___│22222│___33│
* └-----┴-----┴-----┘
* 0. [empty, ] : no tile in this block
* 1. [left, down] : from left to down
* 2. [horizontal, ] : from left to right
* 3. [right, down] : from right to down
* 4. [vertical, left] : from up-left to down-right
* 5. [full, ] : all tiles are soild
* 6. [vertical, right] : from up-right to down-left
* 7. [left, up] : from left to up
* 8. [horizontal, ] : 8. == 2.
* 9. [right, up] : from right to up
*
* ---------- reverse direction ----------
* 10. [_empty, ] : the reverse version of 0.
* 11. [_left, down] : the reverse version of 1.
* 12. _2
* 13. _3
* 14. _4
* 15. _5
* 16. _6
* 17. _7
* 18. _8
* 19. _9
*
* ---------- direction relation ----------
* If direction of this block is 'x', which block can connect it?
* ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐
* │ │ 3 6 │ │ │ │ │ │ │ │ 1 4 │ │
* │ │_1 4 │ │ │ │ │ │ │ │_3 6 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ 239 │ 7 │ 459 │ │ │ 2 │ │ │ 567 │ 9 │ 127 │
* │ │ │_3 6 │ │ │ │ │ │_1 4 │ │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ 5 │ │ │ │ │ │ │ │ 5 │ │
* │ │_123 │ │ │ │ │ │ │ │_123 │ │
* └-----┴-----┴-----┘ └-----┴-----┴-----┘ └-----┴-----┴-----┘
*
* ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐
* │ │ 1 4 │ │ │ │ 279 │ │ │ │ 3 6 │ │
* │ │_3 6 │ │ │ │ │ │ │ │_1 4 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ 567 │ 4 │ 036 │ │ 6 7 │ 5* │ 4 9 │ │ 014 │ 6 │ 459 │
* │_1 4 │ │_4 9 │ │_1 4 │ │_3 6 │ │_6 7 │ │_3 6 │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ 4 9 │ │ │ │ │ │ │ │ 6 7 │ │
* │ │_6 7 │ │ │ │_123 │ │ │ │_4 9 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
*
* ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐
* │ │ 0 │ │ │ │ 0 │ │ │ │ 0 │ │
* │ │_279 │ │ │ │_279 │ │ │ │_279 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ 239 │ 1 │ 036 │ │ 239 │ 2 │ 127 │ │ 014 │ 3 │ 127 │
* │ │ │_4 9 │ │ │ │ │ │_6 7 │ │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ 4 9 │ │ │ │ 5 │ │ │ │ 6 7 │ │
* │ │_6 7 │ │ │ │_123 │ │ │ │_4 9 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
*
* ┌-----┬-----┬-----┐
* │ │ │ │ x*: around with x
* │ │_279 │ │
* ├-----┼-----┼-----┤
* │ 1 4 │ 0* │ 3 6 │
* │_6 7 │ │_4 9 │
* ├-----┼-----┼-----┤
* │ │ 123 │ │
* │ │ │ │
* ├-----┼-----┼-----┤
*
* ---------- reverse relation ----------
*
* ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐
* │ │ 1 4 │ │ │ │ │ │ │ │ 3 6 │ │
* │ │_3 6 │ │ │ │ │ │ │ │_1 4 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ _7 │ 036 │ │ │ _2 │ │ │ 014 │ _9 │ │
* │_239 │ │_4 9 │ │ │ │ │ │_6 7 │ │_127 │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │0123 │ │ │ │ │ │ │ │0123 │ │
* │ │ │ │ │ │ │ │ │ │ │ │
* └-----┴-----┴-----┘ └-----┴-----┴-----┘ └-----┴-----┴-----┘
*
* ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐
* │ │ 3 6 │ │ │ │ │ │ │ │ 1 4 │ │
* │ │_1 4 │ │ │ │ │ │ │ │_3 6 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ 014 │ _4 │ 459 │ │ │ 0 │ │ │ 567 │ _6 │ 036 │
* │_6 7 │ │_3 6 │ │ │ │ │ │_1 4 │ │_4 9 │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ 6 7 │ │ │ │ │ │ │ │ 4 9 │ │
* │ │_4 9 │ │ │ │ │ │ │ │_6 7 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
*
* ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐ ┌-----┬-----┬-----┐
* │ │ 2579│ │ │ │ 2579│ │ │ │ 2579│ │
* │ │ │ │ │ │ │ │ │ │ │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ _1 │ 459 │ │ │ _2 │ │ │ 567 │ _3 │ │
* │_239 │ │_3 6 │ │_239 │ │_127 │ │_1 4 │ │_127 │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
* │ │ 6 7 │ │ │ │0123 │ │ │ │ 4 9 │ │
* │ │_4 9 │ │ │ │ │ │ │ │_6 7 │ │
* ├-----┼-----┼-----┤ ├-----┼-----┼-----┤ ├-----┼-----┼-----┤
*
*