CommandCraft
本帖最后由 CommandCraft 于 2016-7-27 09:55 编辑

随机地形生成器山寨生成器233)   作者:CommandCraft 熔岩之盾工作组
  首先,本作品暂时只是一个测试版,仅供学习参考观赏+提意见,未经作者允许禁止转BUG可能会比较多,欢迎找BUG
顾名思义,本作品就是随机生成一个地形:
==========展览馆=====
一共可能生成4种生物群系:白桦木林,树林,沙漠,冰原
能够自然生成建筑物,洞穴,矿物,花草,岩浆,山脉,湖泊,河流。
自己去逛逛吧!
请大家多多关照!欢迎提建议/找BUG!
============================================
原理请翻页,只要存档的就此止步:http://yun.baidu.com/share/link?shareid=2054394696&uk=892957517|
=============================================

2021.12 数据,可能有更多内容随机地形生成器(山寨生成器233)   作者:CommandCraft 熔岩之盾工作组首先,本作品暂时只是一个测试版,仅供学习参考观赏+提意见,未经作者允许禁止转,BUG可能会比较多,欢迎找BUG!顾名思义,本作品就是随机生成一个地形:==========展览馆=====
一共可能生成4种生物群系:白桦木林,树林,沙漠,冰原能够自然生成建筑物,洞穴,矿物,花草,岩浆,山脉,湖泊,河流。自己去逛逛吧!请大家多多关照!欢迎提建议/找BUG!============================================原理请翻页,只要存档的就此止步:http://yun.baidu.com/share/link?shareid=2054394696&uk=892957517|=============================================





地形使用一个种子,剩下的地形根据他来生成。由于只是个山寨生成器,所以创建一个隐形盔甲架,并且创建一个叫做seed的计分版,并且不停增加这个值,当这个值达到10的时候重置,做到“伪随机”,种子用于各种地形生成的数量,种类。首先创建一个MARKER,名字叫做spawn增加一个叫做time的计分版来记录生成的进度。首先是重置地图不用说,上面空气,中间草,中下泥土,下面石头,底层基岩。地形肯定是要有山峰的,但是山峰不好生成,那么有一个简单的算法:就是根据种子来生成不同数量的生成落沙的刷怪笼矿车:execute @e[name=Spawn,score_time_min=2,score_time=2] ~ ~ ~ /summon MinecartSpawner ~ ~10 ~ {MaxNearbyEntities:1200s,RequiredPlayerRange:2200s,SpawnCount:46s,SpawnData:{id:"FallingSand"},MaxSpawnDelay:1s,SpawnRange:7s,MinSpawnDelay:1s,SpawnPotentials:[0:{Entity:{id:"FallingSand",Block:minecraft:grass,Time:100s},Weight:1}],CustomName:Mountain}可以看到是生成草方块落沙,然后把这个刷怪笼矿车的time分值不停增加,直到达到一定值(山峰大小决定)就杀死它。但是这生成的东西看起来像山峰的基座,所以在这个刷怪笼矿车上面生成一个刷怪笼矿车(生成半径减小),然后同样到达一定时间杀死来做一个山顶。execute @e[name=Mountain,score_time_min=15,score_time=15] ~ ~6 ~ /summon MinecartSpawner ~ ~ 10 ~{MaxNearbyEntities:1200s,RequiredPlayerRange:2200s,SpawnCount:46s,SpawnData:{id:"FallingSand"},MaxSpawnDelay:6s,SpawnRange:4s,MinSpawnDelay:1s,SpawnPotentials:[0:{Entity:{id:"FallingSand",Block:minecraft:grass,Time:100s},Weight:1}],CustomName:Hill}而湖泊比较好生成,随机在周围根据种子生成几个Marker(spreadplayers)然后生成tnt再把空气转换为水(fill replace)。
至于树我暂时没想到什么好办法,还请大神帮我。我就根据种子的不同生成不同数量的树吧(clone)这里我弄了4种树,应该看起来还是比较像随机的。
然后建筑物没什么好说的,spreadplayers+clone(多弄几种才像随机)
矿物首先根据种子可以生成不同种类,然后spreadplayers到地图的各个地方,然后这时候需要比较多的fill+c=?就是在最近几个生成一种类型的分布,重复这一步骤之类的。
至于杂草、野花、食物(西瓜南瓜)的话也是刷怪笼矿车(照葫芦画瓢,改几个数字就行)然后洞穴就是随机炸出来的。
较长的洞穴是首先生成一个基点:然后再周围随机生成另一个点,再在那个点重复此步骤,然后Boom!再清除掉那些点。
最后改地形就是fill replace(沙漠,雪原)其实技术含量也不高,比起那些大神还是差远了,谢谢大家的支持与鼓励!




LCSDB
地形生成的感觉有点人工啊...也许自然一点会比较好吧。

夜里看天
本帖最后由 夜里看天 于 2016-7-30 18:29 编辑

关于随机生成的山脉:或许你可以在主刷怪箱四周随机生成0-3个小刷怪箱,小刷怪箱周围再做附刷怪箱......这样做出来更像山脉而非土峰;
关于湖泊:用高压苦力怕会好点吧——可以设置爆炸半径大小还不会像TNT那样乱飞;
关于洞穴:偶尔生成几个高压苦力怕(爆炸范围略大)可能更真实;地形你可以试试将随机位置的一圈AS炸出去形成一个弧,并以此作不同高度(地平线)。
另外:你知道一个东西叫遗迹吗(雪屋之类)?不妨增加一个小概率生成遗迹;
【这些东西由玩家自定义会不会更受欢迎......】

话说我怎么说的跟无故找茬一样?
其实我只是希望拿到手里的东西更好而已~

夜里看天
夜里看天 发表于 2016-7-29 23:29
关于随机生成的山脉:或许你可以在主刷怪箱四周随机生成0-n个小刷怪箱,小刷怪箱周围再做附刷怪箱......这 ...

大家都是新手~~~

mc.xinchen
自然生成更好

1610962033
LCSDB 发表于 2016-7-29 10:15
地形生成的感觉有点人工啊...也许自然一点会比较好吧。

我也是南平的

CommandCraft
夜里看天 发表于 2016-7-29 23:29
关于随机生成的山脉:或许你可以在主刷怪箱四周随机生成0-3个小刷怪箱,小刷怪箱周围再做附刷怪箱......这 ...

建议不错,谢谢

第一页 上一页 下一页 最后一页