地图 ( 吃东西侦测 )
这篇文章延续“绘制地图 ( 墙壁碰撞侦测 )”文章,搭配试算表设计超大型地图,让地图上出现需要“吃掉”的苹果,并透过键盘控制角色,让角色在地图中探险找到苹果,将苹果吃掉。
相关文章参考:
打开范例
打开“绘制地图 ( 墙壁碰撞侦测 )”的范例,从这个范例进行修改。
积木程序原理 ( 更新地图 )
打开范例后,先将 source 清单显示在舞台中,并将 source 的内容清空。
清空的方式可以在积木清单里,找到“删除清单的所有项目”积木,下拉选单选择 source,选择后点击该积木,就可以在不使用该积木的状态下,将 source 的内容清空。
使用试算表编辑地图的数组 ( 参考 绘制地图 ( 二维数组 ) ),绘制一个非常大的地图数组,数组中除了 1 和 0,额外增加几个 2 的数字,作为苹果出现的位置,完成后下载为 CSV,打开 CSV 文件,在每一行的前后加上双引号。
因为地图的最左侧和最右侧会链接在一起 ( 左右循环移动 ),,所以作为墙壁的“1”可以往右边延伸 10 格 ( 宽度总共 20 格,从中间算起往右 10 格 ),往下延伸 7 格,角色在移动时边缘就不会出现地板的“0”。
CSV 范例:文件下载
从舞台上,将 CSV 文件导入 source 清单。
点击绿旗,在舞台上可以看到二维数组产生的地图,使用键盘上下左右就可在地图中探索。
积木程序原理 ( 加入苹果 )
点击正方形 box 角色,切换到造型页签,加入一个苹果造型,将尺寸调整为 24x24,对齐画布中心。
切换到程序页签,在编辑区里找到“显示”函数,判断如果 list 的第 i 项等于 2,就换成苹果造型。
完成后,点击绿旗,地图中 2 的位置就会出现苹果。
积木程序原理 ( 吃东西 )
编辑角色吃东西的程序:
- 如果座标等于 x 和 y 的数值,表示角色碰到苹果。
- 将 list 的第 i 项从 2 更换为 0。
- 执行“合并 list 为文字”函数,将 list 由清单转换成一串文字。
- 将 map 的第 j 项,更新为新的文字。
- 广播“eat”消息。
每次执行“显示”函数时,会将 map 的每个项目取出变成一个 list,所以如果更新了某个 list,要再将 list 的内容更新回 map。
点击橘色球 ball 的角色,加入收到广播消息 eat 后,讲出“吃到了!!!!”
完成效果
完成后,点击绿旗,按下键盘的上下左右控制移动,就可以开始进行吃苹果与地图探索的游戏。
范例解答
范例解答:绘制地图 ( 吃东西侦测 )
微信扫码关注
抖音扫码关注