钓鱼游戏
这篇文章会介绍,如何在 Scratch 里使用多个角色、函数、变数、重复、按下鼠标、建立分身...等积木,实作一个水底有鱼游来游去,可以使用鼠标钓鱼的小游戏。
角色设定
在角色编辑区,删除猫咪角色,加入“鱼”的角色 ( 参考:Scratch 角色设定 )。
使用“绘画”功能绘制一个空白的新的角色,命名为“钓鱼线” ( 参考:造型与绘图 )。
因为钓鱼线角色会使用“画笔”画出钓鱼线,所以只需要一个完全空白的角色。
使用“上传”功能,上传一个“鱼钩”的新角色,命名为“鱼钩”。
鱼钩 SVG 图片:下载网址
点选“鱼钩”角色,切换到“造型”页签,使用“选取”工具,将鱼钩的末端,对齐画布的中心点 ( 鱼钩旋转时,才会以末端为中心点旋转 )。
将舞台背景换成水底世界的图案,就能看到鱼钩和鱼出现在水底 ( 调整鱼钩的大小如下图的鱼钩尺寸 )。
积木程序原理 ( 鱼钩 )
点击“鱼钩”角色,在绿旗被点击时,使用重复无限次积木,让鱼钩定位在舞台正上方 ( 0, 180 ),不断朝着鼠标方向旋转 ( 指向鼠标方向 )。
加入重复无限次积木,编辑鼠标点击时,放下鱼钩钓鱼的动作:
- 新增一个 my 变数。
- 当按下鼠标时,将 my 变数的数值设定为鼠标的 y 座标。
- 使用重复积木,不断重复往按下鼠标的座标移动 10 点。
- 直到鱼钩的 y 座标大于按下鼠标的 y 座标 ( my 的数值 ),或碰到鱼的角色 ( 钓到鱼 ) 为止。
- 放下鱼钩的重复动作停止后,接着使用另外一个重复积木,每次重复往反方向移动 ( 收回鱼钩 )。
- 直到鱼钩抵达最上方为止 ( 使用 175 可以避免超过最上方又反弹回来 )。
为了告诉钓鱼线角色鱼钩的位置,所以新增 x 和 y 两个变数,记录鱼钩在角色移动时的座标数值。
完成后,点击绿旗,在舞台上点击鼠标,鱼钩就会朝向鼠标的方向移动,移动到点击的位置后,就会移动回原本的位置。
积木程序原理 ( 钓鱼线 )
点击“钓鱼线”角色,编辑点击绿旗时的动作:
- 设定画笔粗细为 2,颜色设定为黑色。
- 使用重复无限次积木,每次重复执行:
- 清除舞台笔迹。
- 定位到鱼钩出发的位置 (0, 180)。
- 下笔。
- 定位到鱼钩目前的位置 (x, y)。
- 停笔。
完成后,点击绿旗,在舞台上点击鼠标,鱼钩就会朝向鼠标的方向移动,后方也会出现一条黑色的钓鱼线。
积木程序原理 ( 鱼 )
点击“鱼”角色,编辑点击绿旗的动作:
- 新增一个变数 ok,设定为 0,表示还没有钓到鱼。
- 隐藏本尊
- 使用重复四次积木,建立四个分身。
- 每次重复将尺寸、定位设定为随机数 ( 定位设定在舞台下方的随机数 )。
- 每次重复将造型换成下一个。
为了让每个分身移动的速度不同,新增一个名为“鱼游泳”的函数,加入“速度”参数。
编辑鱼游泳的函数:
- 设定回转方式为“左-右”,避免上下颠倒。
- 使用重复无限次积木。
- 每次重复时,如果碰到鱼钩,且 ok 为 0 ( 表示鱼钩上没有鱼 )。
- 将变数 ok 设定为 1 ( 表示鱼钩上有鱼 )。
- 使用重复积木,将鱼定位在鱼钩的位置 ( 跟随鱼钩移动 ),直到抵达舞台顶端为止。
- 抵达舞台顶端后,将 ok 设定为 0,删除分身。
- 如果没有碰到鱼钩,或鱼钩上有鱼。
- 根据速度参数移动,设定撞到边缘就反弹。
设定当鱼的分身产生时,显示分身,执行鱼游泳的函数。
完成效果
完成后,点击绿旗,就可以开始进行钓鱼的小游戏。
范例解答
范例解答:钓鱼游戏
延伸练习
如果已经熟悉了钓鱼游戏的原理,还可以尝试更多好玩的作法:
- 修改程序,让钓到鱼之后,让水中永远保持四条鱼,并加入计分的机制 ( 解答 )
微信扫码关注
抖音扫码关注