教学原文参考:青蛙过河
这篇文章会介绍,如何在 Scratch 3 里使用多个角色,搭配重复、侦测碰到其他角色、定位、函式...等积木,实作一个青蛙过河的小游戏 ( 键盘控制青蛙移动,踩在漂浮的木头上通过河流 )。
在角色编辑区,删除猫咪角色,加入「青蛙」角色,使用「绘画」功能,加入「木头」和「河流」两个空白角色 ( 参考:Scratch 角色设定 )。
点选「青蛙」角色,切换「造型」页签,删除青蛙的舌头,避免突出的舌头造成判断错误,并将「高度」调整为 30,对齐画布中心。
为什麽高度要设定为 30 呢?因为待会青蛙会采用 40 为单位进行上下移动,为了画面美观以及避免超过范围造成判断错误,所以使用 30。
点选「木头」角色,切换「造型」页签,使用方形工具,画出两个咖啡色的木头造型,比较大的造型 ( 名称 200 ) 尺寸设定为 200x38,比较小的造型 ( 名称 100 ) 尺寸设定为 100x38,对齐画布中心。
为什麽高度要设定为 38 呢?因为待会青蛙会采用 40 为单位进行上下移动,为了画面美观,保留木头之间会有一点缝隙可以看到下方的河流,所以使用 38。
点选「河流」角色,,切换「造型」页签,使用方形工具,画出蓝色的河流造型,尺寸设定为 480x280,对齐画布中心。
为什麽高度要设定为 280 呢?因为待会青蛙会采用 40 为单位进行上下移动,需要保留最上方和最下方的空间,让青蛙有出发和抵达的位置。
点击「河流」角色,设定点击绿旗的时候,将河流移动到最下层,避免遮住青蛙或木头。
完成後,点击绿旗,舞台区里应该可以看见下图的画面。
点击「木头」角色,设计出「许多木头在河流上漂动」的效果,首先编辑点击绿旗的程序:
由於角色在舞台边界时,会在舞台上突出 15 点,所以计算最边界的座标,使用边界值 ( 240 ) 加上角色的一半宽 ( 200/2=100 ) 在减掉 16 ( 为了让判断更准确,使用 16 ) 之後,就是角色在边界的座标位置。
新增一个名为「往右移」的函式,负责「短木头」往右移动的程序:
因为短木头的长度为 100,所以角色在边界的座标为 -240-50+16 或 240+50-16。
新增一个名为「往左移」的函式,负责「长木头」往右移动的程序:
因为长木头的长度为 200,所以角色在边界的座标为 -240-100+16 或 240+100-16。
设定分身产生时的动作:
为什麽要使用 0.1 呢?如果随机数使用 0~3,数值只会有 0、1、2、3 的整数,如果使用小数点,就可以有 0.1、0.2...等的小数点随机数。
完成後,点击绿旗,木头就会开始在水上漂动,长木头往左漂,短木头往右漂。
点击「青蛙」角色,编辑点击绿旗的程序:
新增另外一组点击绿旗的程序,负责青蛙的左右移动:
再度新增另外一组点击绿旗的程序,负责青蛙的上下移动:
完成後,点击绿旗,就可以开始进行青蛙过河的游戏。
在角色面板里,增加一个 Apple 角色。
切换到造型页签,将尺寸调整为 30x30,对齐画布中心。
点击「青蛙」角色,在第一组点击绿旗程序里,加入碰到 Apple 的判断,如果碰到 Apple,将青蛙移动回舞台中间下方 (0, -160),并发送 eat 讯息。
点击「Apple」角色,设定点击绿旗时,将 Apple 定位在舞台中间上方 (0, 160),如果收到 eat 讯息,将 x 座标设定为 -220~220 的随机数。
完成後,点击绿旗,就可以开始进行青蛙过河吃苹果的游戏。
范例解答:青蛙过河
如果已经熟悉了青蛙过河的原理,还可以尝试更多好玩的作法:
- 加上「计时与计分」的机制。( 解答 )
大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!
<<: Day24 - 在 XState 中的阶层式状态 Hierarchical States
登入AWS Portal之後可先选取实作地区 使用DynamoDB当作NoSQL实作平台, 从建立...
这篇要来介绍 React router v5 加入的几个 hook,包括 useParams、use...
终於,我们要进入 UX/UI 设计中的最後一个流程- 高精度原型 Hi-Fi Prototype,这...
今天本来想写动态参数的,但发现脚本有些内容涉及到一些模块的知识,所以今天我们就先来看一下powers...
购入了AI2三本书籍後, 努力学了AI2数日, 上网查资料的过程中, 发现有thunkable这个工...