下载 App
开发者日志-02
修改于10/193 浏览综合
本次日志主要关于程序近两日的情况


基本循环
以“步”为单位统一结算地块属性转移和植物生长逻辑,顺序依次为:
- 相邻地块流动:温度、土壤含水量、土壤含量【土壤不转移】从高到低往相邻地块转移;
- 渗水:地块的地表水向地下转移,即逐渐变土壤含水;
- 蒸发:地块含水减少,有地表水时优先扣除地表水,反之则扣除土壤水;
- 现有植物生长或衰减:用当前土壤含量、土壤湿度判断可达到的最高阶段和生命上限,若仍可生长则消耗土壤水增加生命,到达对应阶段门槛则升阶;条件不足时扣除生命,生命归零则移除,该过程不进行阶段减退;
- 种子萌发:符合地块类别及土壤条件、有水和植物空位时,消耗水生成生命为 1 的植物;
- 成熟植物播种:最高阶段的植物每间隔一段时间向有空位的左或右相邻地块投一颗种子,于下一步萌发。
该循环的触发频率可以由步的频率控制,目前开发阶段为 1步/s,后续可以根据表现做更多调整。


植物表
为了方便后期配置,设计一个编辑器小工具,可以在 Inspector 栏中快速配置植物的属性,可配置项有:
- 名称
- 适宜生长地块
- 适宜生长阶段上限
- 生长阶段数
- 各阶段所需资源(土壤、水分)阈值及图像
- 是否为前景(是否能挡住小狐狸)



玩家投放
在投放点我们的小狐狸可以主动选择投放水或者种子:
- 投放水:增加地表水,无法投放超出地表水最大值的量;
- 投放种子:增加该地块待萌发的种子数量,无法投放超出地块最大植物数量的量;
投放过程在玩家点击确认时立即执行,投放弹窗打开期间,环境步进暂停。



生态演化系统改进
数值及属性微调
- 移除土壤含量及湿度的百分比;
- 将高度由二值(0或1)更改为(0-6)范围,并结合地表水水深计算相对高度差。
初始化逻辑微调
不直接随机初始化所有地块属性,而是先独立生成土壤量、温度、高度、初始植物数量与湿度比例,再根据这些属性计算得到最大土壤含水量、当前水量和蒸发速度。
例如,先随机初始湿度为40%,再计算初始水量=最大土壤含水量×湿度。
地块属性转移逻辑微调
移除每步土壤含量的相邻地块间转移。


天气系统
为了不让我们的全部地形都变成沙漠,加入天气事件:蒸发和降雨机制。
根据蒸发累计可降雨水分,随后随机抽取一格作为起点,连续15格(可以跨站)累计蒸发的水汽若满足条件(达到某个降雨门槛)触发降雨,每次降雨持续40s,每秒为15格的地块提供总雨量/15/40的地表水。



水洼与水草
水洼是一种特殊的地块类型,可以出现在任何主题(站点)的地块上,作为覆盖在基本地块之上的水状态,由地表水量影响外观,其中:
- 0~10:不积水;
- 10~25:中等水深,地面高度+1;
- 25~35:高等水深,地面高度+2;
地表水量增加时会影响不耐淹(耐淹属性后续可在之前的植物表中进行配置)植物:
- 中等水深时,每秒对不耐淹植物扣减一点生命值,直至死亡消失;
- 高等水深时,每秒对所有植物扣减一点生命值,直至死亡消失;
水草:地表水到达25时可以生长水草,连续保持深水,累计20个步后变成大水草。水位降到25以下便开始退水计时,期间若恢复深水就取消计时;否则第5秒水草消失。


画面布局
最终的游戏画面布局如下,从后往前依次为:
- 背景:画面中的远景贴图;
- 背景植物(大型植物):例如树,可以被小狐狸挡住;
- 小狐狸和地块;
- 前景植物(小型植物):例如小花小草,可以挡住小狐狸;











