角色 ( 墙壁、爬墙 )
角色移动撞到墙壁后,被墙壁卡住无法前进的效果,是角色控制中最不容易理解的,这篇文章将延续“角色控制 ( 跳耀、两段跳 )”文章,搭配变数、函数、重复、逻辑判断积木,实作角色会被墙壁卡住,无法前进的效果。
相关文章参考:角色控制 ( 跳耀、两段跳 )、函数、重复、逻辑判断。
打开范例
本篇教学为“角色控制 ( 跳耀、两段跳 )”一文的延伸,请先打开范例进行编辑。
积木程序原理
打开范例后,点击“场地”的角色造型,额外绘制“天花板”、“斜坡”和“垂直的墙壁”。
接着修改小鸡角色的程序,新增一个名为撞墙的函数,勾选“执行完毕再更新画面”。
编辑撞墙函数内容 ( 因勾选了执行完毕再更新画面,所以函数的执行过程会很快 ):
- 使用重复十次积木
- 每次重复判断是否碰到场地,如果碰到,就将角色的 y 座标往上提高 1。
- 这个做法可以判断是否遇到垂直的墙壁,因为如果是垂直的墙壁,角色 y 座标会加 10。
- 重复十次之后,如果还是碰到场地:
- 让角色的 x 改变“x 速度 x -1.2”,往反方向移动一点点。
- 让角色的 y 减少 10,回到原本的高度 ( 因为前面已经被提高 10 )。
- 将 x 速度变数设定为 0,使角色静止不动。
编辑函数完成后,在左右键盘控制角色移动的程序,在最下方执行“撞墙”函数。
完成后,点击绿旗,就会看到小鸡角色在移动时,会被墙壁所阻挡卡住。
修改“站在地上”函数,加入判断“往上跳撞到墙”的逻辑判断,避免将往上跳撞到墙当成站在地上,当撞到墙就将 y 改成负值,就会变成往下掉。
最后再新增一个“点击绿旗”的程序:
- 判断如果按下“向上”键盘时,也按下“向左”或“向右”,表示角色可能正要爬墙或正在空中跳。
- 此时判断“如果 x 速度变数为 0”,表示角色正撞到墙壁 ( 撞墙函数会在撞墙时,将 x 速度设为 0 )。
- 角色如果撞到墙壁,就让角色的 y 速度变数为 10 ( 往上移动 )。
- 将“空中”变数设定为 0,如此一来在爬墙时如果往后跳,仍然可以进行两段跳的动作。
完成效果
完成后,点击绿旗,就能够用键盘控制小鸡角色,角色可以在水平的地板或斜坡移动,移动时会被墙壁卡住,被墙壁卡住时可以爬墙,在空中可以二段跳,如果跳耀时撞到天花板会被挡住。
范例解答
范例解答:角色控制 ( 墙壁、爬墙 )
微信扫码关注
抖音扫码关注