角色 ( 地上移动 )
这篇文章会介绍,如何在 Scratch 里使用函数、变数、碰到其他角色、重复无限次、绘制角色、按下键盘、逻辑...等积木,实作角色可以自由落地站在地板上,并由键盘控制角色在地板上移动。
角色设定
在角色编辑区,删除猫咪角色,加入一个小鸡的新角色 ( 参考:Scratch 角色设定 )。
另外一个角色,使用绘画,绘制地板的图案,将名称命名为地板 ( 参考:造型与绘图 )。
完成后,在角色区域应该就能看到小鸡角色和地板角色。
积木程序原理
点选小鸡角色,一开始先将小鸡定位,并把角色移到最上层 ( 避免被地面遮住 ),增加 x 速度和 y 速度两个变数,分别表示水平移动和垂直移动的速度,接着使用重复无限次积木,让 y 速度不断改变,并让小鸡的 y 座标等于 y 速度,就能让小鸡自由落体移动。
为什么要先设计自由落体呢?主要让小鸡不论从什么位置开始,或者不论地面的位置在何处,小鸡最后都能停留在地面上。
点击绿旗执行后,会看见小鸡以自由落体 ( 往下移动越来越快 ) 的方式,移动到最下方。
新增一个名为“站在地上”函数,勾选“执行完毕再更新画面”,负责判断小鸡是否站在地上。
为什么要勾选“执行完毕再更新画面”呢?因为角色落下时,会发生超过地板的状况,所以会使用“重复”积木计算与地面的距离,“执行完毕再更新画面”可以让重复的过程迅速完成。
函数的内容为一个“重复...直到”积木,如果小鸡碰到地板,就重复将 y 座标加 1 ( 往上移动 ) 以及设定 y 速度为 0,直到没有碰到地板为止,函数完成后,在自由落体的重复无限次积木在里,呼叫“站在地上”的函数。
因为函数执行的速度远快于外层的“重复无限次”积木,所以当小鸡落地并往上离开地板的瞬间,就会停留在地板上。
点击绿旗,小鸡就会自由落体,并停留在地面上。
新增另外一个点击绿旗的积木,当点击绿旗,使用重复无限次积木,判断按下“向右”键时,让 x 速度变数不断增加 2,按下“向左”键时,x 速度变数不断减少 2,最后让 x 速度乘以 0.8,就能让放开键盘时,移动速度慢慢停下来。
完成效果
完成后,点击绿旗,就能用键盘的左右键,控制小鸡在地板上移动。
这个做法也适用于不同高低落差的地面,小鸡也可以顺利的移动上去。
范例解答
范例解答:角色控制 ( 地上移动 )
继续阅读
如果已经熟悉了角色在地上移动,就可以继续阅读“角色蹲下、左右转”的文章。
文章链接:角色控制 ( 蹲下、左右转 )
微信扫码关注
抖音扫码关注