scratch的角色在左右移动的时候,如果仅使用碰到边缘即反弹的功能,会产生角色向某一方向横向运动时正常,而反方向的时候头下脚上的情况,这是因为“碰到边缘即反弹”这块积木会将角色旋转180度。为了避免这个问题,scratch也提供了官方的解决方案,就是设置角色在旋转时,仅允许左右翻转。
角色上下移动的时候,旋转180后下落的视觉效果其实并没有左右移动时那么突兀。官方也没有提供仅上下翻转的选项,如果需要实现上下的镜像翻转,我们可以利用检测舞台边缘的功能来自行实现这个功能。
角色做往复运动的时候,我们往往会使用一块移动积木,该积木的默认行进方向是角色造型时的右侧。当角色在程序中被旋转180度之后,这个行进方向也随之改变,变成了向左移动,从而利用单一的一块移动积木实现了角色的往复。
要利用移动积木实现上下运动的时候,我们可以在角色修改界面,将角色旋转90度,这样移动方向就变成了朝向图中角色的双脚所指向的方向。在scratch中旋转角色的时候,同时按住shift键,可以更准确的控制旋转角度。将图中角色在实际的程序中旋转至水平方向,对其使用移动积木时,角色会上下运动。
角色绘制界面,有两个图像镜像功能,分别是左右镜像,与上下镜像。我们复制一个角色造型,对其使用上下镜像。当角色碰到上下舞台的边缘时,我们将角色旋转180度,并切换一次造型,这样就能实现角色上下往复时的镜向运动了。
实际操作中,因为角色上下比例的不均等,可能会造成角色旋转180度后再次符合边缘检测条件,导致角色在舞台边缘不停的翻滚,图中的这个小鸭子就碰到了这个问题。这里简单的在换向后增加了一块移动积木,以避让开屏幕的边缘。更为安全稳定的办法是设置一个检测变量,检测变量与边缘检测同时符合时才换向,换向后立即修改检测变量的值。直到角色运行至屏幕中间位置,才复位检测变量。