论文部分内容阅读
对于《电脑报》的忠实读者来说,小陈老师之前带着大家做了很多Scratch小游戏,像贪吃蛇、猫抓老鼠、火箭降落等等,这些游戏作品都有一个共同点,背景基本上是不动的,运动的只是角色本身而已,如果只通过简单的积木代码只能实现简单的切换背景图片效果。但是在现实的游戏和案例中,不少游戏背景地图都非常庞大。而且背景是变化多样的,需要在背景图切换的过程中做到无缝衔接,有时还需要把背景图进行翻转对接等。
不要觉得这些效果非常简单,无非就是改变坐标加上旋转角度参数产生变化,其实里面有着大学问呢,今天就和大家一起完成剧场式逼真的动画效果。这次我们要完成小猫奔跑的动画场景,随着小猫的奔跑我们主要目标是实现背景图片的无缝切换。
首先我们需要一个高精度版的小猫替换原版小猫。这个小猫角色“Scratch Cat”已上传至百度云,请关注“壹零社”,点击编程相关获取网盘地址,你可以在2021-39文件夹中找到它。这个小猫角色中包含了更多造型比如奔跑、旋转跳街舞等,大家可以复用在各种程序中(图1)。
在程序中,我们只要把小猫放入指定的位置,切换成跑步的初始造型,重复循环执行切换下一个造型,当超出跑步编号(编号小于7)的数值范围后,换回到初始的造型(run-01),周而复始,重复跑步的造型,效果还是非常逼真的(图2)。
完成角色的运动动画之后,我们把编程重点转向背景。背景分成三个部分,陆地和山丘还有天空。
最简单的天空背景就是在舞台背景中填充蓝色,加上一个小太阳就完成了。
重点在陆地和山丘,这两个背景图都是我们手工绘制完成的,大家也可以发挥自己的绘画能力去美化一下。
图3是山丘的背景图,注意用红色数字标记的四个区域,我们在制作背景的时候需要做出重合堆叠拼接的效果,所以要注意红框区域左右两边高度尽量保持一致。我在左右两边点上一个不起眼的小点(这样在移动的过程中可以保持比较好的美感)。完成好一幅背景后,可以通过复制后修改颜色的方法做出有区别的造型。
代码方面我们需要增加三个新的变量:变量“scroll speed”表示背景运动速度,用来控制背景移动的快慢。我将scroll speed值设置为0.25,可自行调整(值越大速度越快)。
变量“CAMERA X”表示运动的距离,该变量仅适用于当前角色,并且设置为滑杆动态效果,修改成滑杆效果,我们只需要拖动滑杆就可以看到类似回播视频的效果。
变量“X”代表X轴长度,我们已知舞台宽度480所以X每次需增加480。
当程序运行后,设置默认背景运动速度0.25,切换到背景造型1,克隆自己,并且切换下一个造型,将X增加480(把克隆体平移一个舞台的距离),执行广播begin(图4)。
在廣播中用变量控制背景的移动,当背景循环拼接结束后又可以重新恢复到初始的位置继续进行循环移动。这里要求大家有空间思维能力和数学计算能力设计出合适的计算公式,背景的移动等于舞台宽度减去背景移动速度乘目前已经移动的距离(CAMERA X)除以960(造型有两个背景宽度480×2)减去480(图5)。
山丘背景完成后,我们新建一个角色用来表示近处地面的场景,这里大家可以发挥自己的创意多绘制一些小石头、花花草草等,放在不同的造型中。小陈老师只随便动手绘制了三幅不同的背景,有石头有苹果树等,目的是背景移动的过程中可以看到更多不同的场景实现切换效果,仅供参考。
代码和山丘部分的代码类似,因为增加了一个造型,所以相应克隆代码也多了一份,480的宽度也需要乘以3了(图6)。
另外还增加了变量“CAMERA Y”,可以控制地面部分在背景中上下移动,代码编写成功后运行程序可以看到一只欢快的小猫在森林中奔跑的场景,细节满满(图7)。
通过本次实验我们又学会了新的知识,大家在空余时间可以研究一下是否可以将背景也制作融入进去,变成一幅白天到黑夜的渐变过程,期待你们带来惊喜哦(图8)。
不要觉得这些效果非常简单,无非就是改变坐标加上旋转角度参数产生变化,其实里面有着大学问呢,今天就和大家一起完成剧场式逼真的动画效果。这次我们要完成小猫奔跑的动画场景,随着小猫的奔跑我们主要目标是实现背景图片的无缝切换。
1. 高精度小猫
首先我们需要一个高精度版的小猫替换原版小猫。这个小猫角色“Scratch Cat”已上传至百度云,请关注“壹零社”,点击编程相关获取网盘地址,你可以在2021-39文件夹中找到它。这个小猫角色中包含了更多造型比如奔跑、旋转跳街舞等,大家可以复用在各种程序中(图1)。
在程序中,我们只要把小猫放入指定的位置,切换成跑步的初始造型,重复循环执行切换下一个造型,当超出跑步编号(编号小于7)的数值范围后,换回到初始的造型(run-01),周而复始,重复跑步的造型,效果还是非常逼真的(图2)。
2. 山岳背景动画
完成角色的运动动画之后,我们把编程重点转向背景。背景分成三个部分,陆地和山丘还有天空。
最简单的天空背景就是在舞台背景中填充蓝色,加上一个小太阳就完成了。
重点在陆地和山丘,这两个背景图都是我们手工绘制完成的,大家也可以发挥自己的绘画能力去美化一下。
图3是山丘的背景图,注意用红色数字标记的四个区域,我们在制作背景的时候需要做出重合堆叠拼接的效果,所以要注意红框区域左右两边高度尽量保持一致。我在左右两边点上一个不起眼的小点(这样在移动的过程中可以保持比较好的美感)。完成好一幅背景后,可以通过复制后修改颜色的方法做出有区别的造型。
代码方面我们需要增加三个新的变量:变量“scroll speed”表示背景运动速度,用来控制背景移动的快慢。我将scroll speed值设置为0.25,可自行调整(值越大速度越快)。
变量“CAMERA X”表示运动的距离,该变量仅适用于当前角色,并且设置为滑杆动态效果,修改成滑杆效果,我们只需要拖动滑杆就可以看到类似回播视频的效果。
变量“X”代表X轴长度,我们已知舞台宽度480所以X每次需增加480。
当程序运行后,设置默认背景运动速度0.25,切换到背景造型1,克隆自己,并且切换下一个造型,将X增加480(把克隆体平移一个舞台的距离),执行广播begin(图4)。
在廣播中用变量控制背景的移动,当背景循环拼接结束后又可以重新恢复到初始的位置继续进行循环移动。这里要求大家有空间思维能力和数学计算能力设计出合适的计算公式,背景的移动等于舞台宽度减去背景移动速度乘目前已经移动的距离(CAMERA X)除以960(造型有两个背景宽度480×2)减去480(图5)。
3. 地面背景动画
山丘背景完成后,我们新建一个角色用来表示近处地面的场景,这里大家可以发挥自己的创意多绘制一些小石头、花花草草等,放在不同的造型中。小陈老师只随便动手绘制了三幅不同的背景,有石头有苹果树等,目的是背景移动的过程中可以看到更多不同的场景实现切换效果,仅供参考。
代码和山丘部分的代码类似,因为增加了一个造型,所以相应克隆代码也多了一份,480的宽度也需要乘以3了(图6)。
另外还增加了变量“CAMERA Y”,可以控制地面部分在背景中上下移动,代码编写成功后运行程序可以看到一只欢快的小猫在森林中奔跑的场景,细节满满(图7)。
通过本次实验我们又学会了新的知识,大家在空余时间可以研究一下是否可以将背景也制作融入进去,变成一幅白天到黑夜的渐变过程,期待你们带来惊喜哦(图8)。