这个游戏来源于Chrome浏览器(谷歌浏览器)在没有网络时的一个彩蛋游戏。先看一下游戏的运行界面:
游戏截图1. 无限移动背景原理及制作
对于一个角色会在背景中移动游戏来说,通常移动的不是角色本身,而是游戏的背景在移动。通过这种相对的运动就会让我们感觉的角色在移动。对于本次我们要制作的这个游戏来说就看起来就像小恐龙在不断的向前奔跑。
这个移动背景制作的原理我们可以用下面三幅图来表示。刚开始第一个背景和第二个背景如下图所示进行布局:
移动背景原理1当我们逐渐将背景1和背景2向左移动(注意,是背景向左移,这样才会让我们感觉到小恐龙是向右奔跑),变成下图:
移动背景原理2这个时候,我们需要将背景1移动到最右边,拼接在背景2后面,如下图:
移动背景原理3通过这样不断的移动背景1和背景2,就会让我们感觉到小恐龙怎么跑也跑不完这个跑道。
背景1的具体代码如下:
背景1角色源码背景2的具体代码如下:
背景2角色源码2. 制作障碍物-仙人掌
为了增加趣味性,仙人掌树我们提供了几种不同的造型,分别如下:
仙人掌造型在游戏开始时,仙人掌树会等待一个随机时间,然后出现,并开始向左移动(将x坐标减少)。
如果在移动过程中碰到了恐龙,那么结束游戏。
如果树移动了最左边(也就是x坐标小于-260),就隐藏,然后移动到最右边,开始等待一个随机时间再开始左移。
树的运动原理和上面背景原理是一致的。
代码如下:
仙人掌角色移动代码注意,在游戏一开始我们还需要设置仙人掌树的位置,所以仙人掌树的完整代码如下:
仙人掌角色全部代码3. 制作小恐龙
对于小恐龙来说最核心的就是跳跃来躲避仙人掌树。
在游戏中跳跃是非常常用的功能之一。很多游戏都是通过跳跃实现前进、躲避障碍物。在我们所制作的这款小游戏也是通过让小恐龙跳跃来躲避仙人掌树。
在Scratch中实现跳跃功能是有很多种方式。比如,最简单就是让角色在上升和下降都采用“瞬时位移”,完成角色的位置改变。另,或者在上升和下降的时候采用匀速运动的方式等。具体的这些跳跃实现方式,我们会专门写一篇文章来进行讲解。
在这里,我们采用了稍微复杂的一种模式,也是比较自然的模式:重力跳跃。就是在跳跃时考虑到重力对角色的影响,刚开始角色移动比较快,后面越来越慢,直到停止上升。下降则相反,会越来越快,直到角色到达地面停止运动。
这个跳跃功能的具体代码如下:
恐龙跳跃代码在这段代码中我们使用了两个循环,分别处理上升和下降。上升时通过不断减少dy这个变量的值(也就是角色每次上升的距离),从而达到模拟重力的效果。下降时则不断增加dy这个变量的值,使得小恐龙下降的越来越快。
好了核心代码写完了。最后再让小恐龙活泼一点:
恐龙切换造型代码综上,就是我们这款小游戏的代码了。小朋友可以动手试试。
4. 动手试一试
另外,留一个挑战给小朋友:在这款小游戏中,每次屏幕中只会出现一颗仙人掌树,你能不能修改一下代码,让屏幕中可以出现2棵或多棵树呢?
试玩版地址:https://kada.163.com/project/4610902-3795377.htm(要在电脑打开)
P.S. 如果你需要这个小游戏的源码和素材可以关注我们公众号,回复S009获取。
编程思维启蒙
网友评论