随机地形,受限于MC记分板的功能限制,采用柏林噪声,值噪声算法工程量巨大,且不易理解。若不要求地形完全自然,可以尝试二值图算法。

效果图
使用记分板提供的players类中的random方法
,可以随机指定对象的某记分板分数。利用此点,
创建一个rand记分板,覆盖盔甲架,随机每个盔甲
架的rand分数(0~1),此时,会发现0,1的分布极
不规律,而我们至少需要让地形满足连续性以及呈
块状。在此引用两条规则:
1:如果1分的盔甲架九宫格范围内有4个及以
上的0分盔甲架,使这个盔甲架变为0分
2:如果0分的盔甲架九宫格范围内有5个及以
上的0分盔甲架,使这个盔甲架变为1分
重复执行以上规则4~5次,得到如下效果:

对于零散的1分数盔甲架,可以在以上规则结束后使用此规则:
如果1分的盔甲架九宫格范围内有8个及以
上的0分盔甲架,使这个盔甲架变为0分
执行1~2次,可以处理大部分零散方块。
以上操作执行完后,接下来便是提高地形,引用如下规则:
1:如果1分的盔甲架九宫格范围内有8个及以上的1分盔甲架,
使这个盔甲架的分数变为2
2:如果2分的盔甲架九宫格范围内有8个及以上的3分盔甲架,
使这个盔甲架的分数变为3
……
可以将8个改为更低,越低地形越崎岖。需要注意的是,此算法在地形平缓时瑕疵较多,可以加上一些限制(例如:统计3分及以下盔甲架的数量,多于指定量——重新生成,少于指定量——继续)
以上规则只执行一次,此时使每个1分及以上的盔甲架上移一格,并在脚下放置草方块,同时减一分
进行到这里,生成便基本完成了
/* 原创作者:
https://www.bilibili.com/video/BV1P...ck&vd_source=307e9b22adc4898928650f74912492b8
*/

效果图
使用记分板提供的players类中的random方法
,可以随机指定对象的某记分板分数。利用此点,
创建一个rand记分板,覆盖盔甲架,随机每个盔甲
架的rand分数(0~1),此时,会发现0,1的分布极
不规律,而我们至少需要让地形满足连续性以及呈
块状。在此引用两条规则:
1:如果1分的盔甲架九宫格范围内有4个及以
上的0分盔甲架,使这个盔甲架变为0分
2:如果0分的盔甲架九宫格范围内有5个及以
上的0分盔甲架,使这个盔甲架变为1分
重复执行以上规则4~5次,得到如下效果:

对于零散的1分数盔甲架,可以在以上规则结束后使用此规则:
如果1分的盔甲架九宫格范围内有8个及以
上的0分盔甲架,使这个盔甲架变为0分
执行1~2次,可以处理大部分零散方块。
以上操作执行完后,接下来便是提高地形,引用如下规则:
1:如果1分的盔甲架九宫格范围内有8个及以上的1分盔甲架,
使这个盔甲架的分数变为2
2:如果2分的盔甲架九宫格范围内有8个及以上的3分盔甲架,
使这个盔甲架的分数变为3
……
可以将8个改为更低,越低地形越崎岖。需要注意的是,此算法在地形平缓时瑕疵较多,可以加上一些限制(例如:统计3分及以下盔甲架的数量,多于指定量——重新生成,少于指定量——继续)
以上规则只执行一次,此时使每个1分及以上的盔甲架上移一格,并在脚下放置草方块,同时减一分
进行到这里,生成便基本完成了
/* 原创作者:
https://www.bilibili.com/video/BV1P...ck&vd_source=307e9b22adc4898928650f74912492b8
*/