下载 App

开发日志 06|收成去哪了?把田地、货舱和金币连起来

10/153 浏览综合
上一篇,机器人学会了“成熟才收获”。两边的胡萝卜被收走,中间还没成熟的那一块继续生长。田里看得出变化,可是金币没有增加。
收获的胡萝卜去哪了?
这一篇,我想沿着收成的去向,把农场里的下一段工作讲清楚:收获到货舱,运到交接箱,入库后再出售。
我做了7年儿童图形化编程教学,现在也在业余时间做自己的游戏。设计这段体验时,我希望玩家能看见程序到底改变了什么。地上的作物少了,机器人的货舱多了;货物入库以后,货舱空了,箱子里有了库存;卖出之后,库存减少,金币才增加。
它们是同一批胡萝卜,在农场里经过了不同的地方。
TapTap
图1|Maker实机演示:交接箱已存入4份胡萝卜,机器人货舱清空,右侧是完整的收获、入库和出售程序。
这次仍然用单行农场,把三块胡萝卜的初始生长进度设为 100%、50%、100%,并把开局自带的交接箱放在 X=2、Y=0。机器人从 X=-1 开始检查,只收成熟的两块,第三次向前移动后,正好到达箱子所在的格子。
这里的坐标有了一个具体用途:告诉机器人把货物送到哪里。
只有站在交接箱或仓库所在的格子上,机器人才能执行入库。把箱子放在远处,然后在田里直接拼一块“入库”,货物并不会自己飞过去。玩家需要先确定目标,再安排移动和交货的顺序。
还有一个值得观察的地方:入库和出售,放在巡查循环的外面。
循环里面做的是每块田都要重复的事:检查成熟状态,需要时收获,然后去下一格。等三块田都检查完,再把这一趟收成一起交出去。
如果把“入库”直接塞进这个巡查循环,机器人还站在田里时就会尝试交货,游戏会提示需要站在仓储点。若想每次收获后都回箱子,就还得安排往返路线。积木的位置换了一点,机器人执行出来的过程就可能差很多。
这次只有4份收成,基础机器人的货舱最多能装16份,装得下,适合收完再送。以后田更多,就需要检查剩余容量,安排分批入库。
TapTap
图2|Maker实机演示:出售完成后,交接箱库存归零,金币从20变成36。
这趟一共收获4份胡萝卜,每份卖4枚金币。先入库,再出售,获得了 16枚游戏金币。已经收过的土地仍然保留为耕地,可以继续播种。
出售数量“4”也是这次演示的参数。换了收成数量,就要留意它是否还合适;之后还可以继续研究,怎样让程序根据库存决定出售多少。
运行时,可以留意三个地方:收获以后看货舱,入库以后看箱子,出售以后看金币。 遇到结果和预想不一样的时候,就沿着这条路线找一找:货物还在机器人身上,还是已经进了箱子?程序有没有先到箱子,再执行入库?
田地、机器人和交接箱已经能靠一段程序联系起来,收成也能换成经营所需的金币。以后还可以把收获和运输交给不同的机器人。这篇先让一台完成整趟工作,理解顺序,再考虑分工。
我理解的“涌现”,就藏在这些规则逐渐接上关系的过程中。玩家自己安排地点、顺序和分工,同样的积木,就有机会搭出不同的农场。
《3D可视化编程农场》开发日志 01|做了 7 年教培,来做游戏了。截图
《3D可视化编程农场》开发日志 01|做了 7 年教培,来做游戏了。
# 《3D可视化编程农场》开发日志 01|从 7 年教培经历里,找到“涌现”的灵感 大家好,我是一名在教培行业工作了 7 年的青年从业者,也是一名业余游戏开发者。平时,我主要教孩子们学习图形化编程。 现在,借助 TapTap 制造这样的工具,开发游戏变得方便了很多。我也有机会把教学中积累的想法,慢慢做成一个大家可以亲手体验的作品。 看到这次聚光灯比赛的主题——**“涌现”**,我很自然地想到了自己
4 赞
开发日志 04|机器人什么时候该浇水?学会判断截图
开发日志 04|机器人什么时候该浇水?学会判断
第四天,我想让农场里的机器人学会一件新事情:先看看土地的状态,再决定要不要浇水。 上一篇里,我们从一排五块土地开始,确定机器人的初始位置,用循环把相同的种植动作连起来。机器人能沿着这一排连续工作了,接下来也就有了一个很自然的问题: 机器人每次经过一块地,都需要浇水吗? 有的地刚刚浇过水,有的已经变干。如果机器人每次经过都浇一次,它虽然执行了程序,但程序还没有考虑眼前的情况。 这次,我用单行农场做了
官方
1 赞
开发日志 02|第一颗种子,也是第一段程序截图
开发日志 02|第一颗种子,也是第一段程序
大家好,我是一名在教培行业工作了 7 年的青年从业者,也是一名业余游戏开发者。平时,我主要教孩子们学习图形化编程。这次借助 TapTap 制造,我想把这些年积累的想法,做成一座可以亲手经营的机器人农场。 上一篇聊了这个作品和“涌现”的联系。这一篇,我想记录一个具体的起点:怎样让玩家从种下一颗种子,走到写出自己的第一段程序。 农场可以有很多东西:大片土地、不同作物、多个机器人,还有越来越复杂的自动化
官方
4 赞
1 回复
开发日志 05|收获,让机器人读懂作物状态截图
开发日志 05|收获,让机器人读懂作物状态
这篇日志,我想把上一回的“判断”,用到一件更让人期待的事情上:收获自己种下的胡萝卜。 上一篇里,机器人已经可以根据土壤湿度决定要不要浇水。现在换一个问题:机器人经过一块田,怎样知道这里的作物能不能收了? 看着胡萝卜一点点长大,我们很容易产生“赶紧收起来”的念头。不过,田里有作物,并不代表作物已经成熟。如果只让机器人沿路执行收获,遇到还在生长的胡萝卜,游戏就会提示“作物尚未成熟”。 于是,这次我继续
官方
1 赞
开发日志 03|新手教程,从第一行作物开始截图
开发日志 03|新手教程,从第一行作物开始
第三天,我把新手教程的起点收到了五块地上。 前两篇聊了为什么做这个游戏,以及怎样从一颗种子走向第一段程序。这次,我想继续解决一个具体的问题:玩家第一次打开游戏,怎样迈出第一步? 做了 7 年图形化编程教学,我很在意入门时给孩子呈现的内容。完整的农场可以有很多机器人、作物和设施,但站在新手的角度,眼前每一样东西都要认识。我希望先给他们一个容易看懂、也能亲手尝试的小目标。 于是,游戏里有了单行模式:一
官方
1 赞
1 回复