您将学习如何创建一个平台游戏,在该游戏中玩家必须躲避移动的球才能到达关卡的尽头。
单击绿色小旗标志开始游戏,使用方向键控制角色移动,使用**空格**键跳跃,遇到粉红的墙可以向上爬。
能学到的知识在这个项目中,我们可以学到以下知识:
如何使用键盘控制角色
使用“如何-那么-否则”积木
了解重力以及如何在游戏中应用重力(物理引擎)
如何克隆角色
项目制作1、角色移动首先创建一个可以左右移动并可以爬梯子的角色,我们可以选择一个精灵,这个精灵最好有走路动画,这样可以让它看起来更自然,如下所示:
另外,我们有一个平台图案的背景,如下图所示:
给我们的角色添加代码,以便玩家可以使用方向键来移动角色。当玩家按下向右箭头时,角色应向右侧移动几步,然后换成下一个造型:
如果您的角色不适合,需要调整其大小:
通过单击绿旗并按住向右箭头键来测试您的角色。您的角色是否向右移动?您的角色看起来像在走路吗?
下面我们来添加向左箭头的控制代码,这样当向左按钮被按下时,它就可以向左走了。
测试新代码,看是否能正常工作。您会发现,向左时,角色可能会颠倒过来。
如果是这样,您可以通过单击角色的方向,然后单击左右箭头来来解决此问题。
您也可以通过把下面这个积木添加到角色代码的开头来解决此问题
想要实现爬粉红色的梯子的功能,只要在上箭头被按下并且角色精灵刚好碰到了正确的颜色时,在舞台上把角色精灵向上移动几步就可以了。代码如下:
测试您的代码。您可以让角色爬上粉红色的梯子并到达关卡的尽头吗?
2、关卡完成向你的角色精灵添加更多的代码积木,如果它到达了绿色的门,让它说点什么吧
、重力和跳跃现在,您将会把角色的移动做得更加逼真:为游戏增加重力,并使角色具有跳跃的能力。
在游戏中,移动您的角色,使其离开平台。您看到它可以走到了空白的地方吗?
要解决这个问题,需要在游戏中添加重力创建一个新的名为重力的变量,我们可以根据需要在舞台中隐藏此变量。
添加下面这些设置重力为负数的代码块,并使用重力的值反复更改角色的y坐标:
单击绿旗,然后将您的角色拖动到舞台的顶部。发生了什么?这个重力效果是不是你想要的呢?
重力不应该使角色精灵穿过平台或梯子!添加一个如果积木块到你的代码中,只有当角色处于空中时才让重力起作用。重力代码应如下所示:
再次测试游戏,看看现在重力是否正常工作。当角色精灵接触到平台或梯子时,它会不会停止下落?您可以使角色走出平台边缘并掉到下面的平台吗?
现在添加代码以使您的角色在玩家按下空格键时跳起来。一种非常简单的方法是将角色向上移动几次:
由于重力不断将您的角色向下推4个像素,因此您需要在将y坐标增加(4)的积木块中选择一个大于4的数字。更改数字,直到您对角色跳跃的高度满意为止。
测试您的代码,我们注意到跳跃动作不是很平滑。为了使跳跃看起来更平滑,需要把角色精灵上升的幅度调整的越来越小,直到不再升高为止。因此需要再创建一个名为跳跃高度的新变量。同样的,您可以根据需要隐藏此变量。删除已经添加到角色精灵中的跳跃部分的代码,然后添加以下代码:
这段代码将您的角色先上移8个像素,然后再上移7.5个像素,然后再上移7个像素,依此类推,直到它不再升高为止,这样就使得跳跃看起来更加平滑。记得要把设置跳跃高度积木块放在变量,该变量在**重复执行**的积木块前面,然后测试您的游戏。重复这两个步骤,直到您对角色跳跃的高度感到满意为止。
4、挑战:改进跳跃体验即使角色已经在半空中,只要玩家继续按下空格键,角色就会连续向上跳。如果一直按住空格键,您就会看到这种现象。您是否可以更改角色精灵的跳跃代码,使得角色如果接触到蓝色平台的时候才能进行跳跃。
5、躲避小球您的角色现在已经可以移动和跳跃了,是时候添加一些躲避球了。
创建一个新的小球精灵,您可以选择任何您喜欢的球。
调整球形精灵的大小,以便角色可以跳过它,尝试使角色跳过球以测试球的大小是否合适。
将下面的代码添加到小球精灵中:
此代码每三秒钟创建一个新的小球精灵克隆,每个新克隆都沿着顶部平台移动,然后掉落。单击绿旗,我们测试下程序
向小球精灵添加更多代码,以便其克隆体在所有三个平台上移动。
现在,如果您的角色被球击中,请添加一些代码块以广播(发送)消息!将下面的代码添加到小球精灵角色中:
最后,在您的角色精灵添加代码块,以使其在收到hit消息时返回起点位置:
测试您的代码,检查角色在碰到小球后是否回到起点位置。
6、挑战:随机小球目前生成的躲避球看起来都一样,并且固定每隔三秒钟就会出现一次。您能否在游戏中添加代码,以便使小球:
看起来不那么一样?
在一个随机多长时间后出现?
小球的大小随机?
7、激光为了让我们的游戏更难完成,我们将添加激光!
在游戏中添加新的精灵,并将其命名为激光。它应该有两种造型:一种叫做“开”,另一种叫做“关”。
将新的激光精灵放置在两个平台之间。
向激光精灵添加代码,以使其在其两个造型之间切换。
我们在两次造型更换之间等待一个随机的时间间隔,让激光更有意思。
最后,向激光精灵添加代码,以便激光精灵碰到角色精灵时广播“hit”消息。
测试我们的游戏,看看是否可以将角色移过激光。如果激光躲避起来太容易或太困难,修改激光精灵代码中的等待时间。
8、挑战:更多障碍如果您认为这个游戏仍然太简单,则可以添加更多障碍,障碍可以是您喜欢的任何东西!下面是一些建议:
一只危险的蝴蝶
出现和消失的平台
掉落的网球
您甚至可以设计另一个背景来创建下一关。添加代码,以便当您的角色到达绿色门时,游戏会切换到新的背景。
9、挑战:改进的重力我们的游戏中还有另外一个小bug:如果游戏精灵的任何部位接触到了蓝色的平台,那么角色精灵将不会下落因此,即使是精灵头部接触平台,精灵也不会掉落!您可以测试一下:让角色精灵爬上梯子,但不是完全爬上梯子,然后将角色精灵移动到平台下方:
可以让孩子好好思考一下,如何修复这个bug。
10、挑战:更多生命现在,角色碰到小球时会返回其初始位置。您还可以给角色精灵设置三条命吗?,如果角色精灵碰到了小球就会失去一条命?
游戏开始时角色有三条命
每当角色被击中时,它就会失去一条生命并且回到起点
如果没有生命,游戏结束
#中国人为何如此疲惫#