最新消息:

Scratch3.0实现接苹果游戏(2)

Scratch 少儿编程 2529浏览 0评论

友情提示:视频教程观看时请手动设置清晰度。

接上一讲,这回来让苹果随机落下吧!

 

首先考虑到苹果要在程序开始时出现在屏幕上方的随机位置,这个位置的y坐标可以不变,但x坐标需要在一定范围内随机变化,结合上一讲提到的舞台大小来考量,可以将x值可以设定在-220至220之间,为何不设定在-240至240之间,是怕苹果随机出现在左右边缘时偏出舞台太多。

 

角色面板里选中苹果之后,在脚本区域中加入启动功能块,接着在“运动”模块中找到移到某个坐标位置的功能块,将x坐标的值填入“运算”模块中“在…和…之间取随机数”这个取随机数的功能块,设定随机数的取值范围在-220到220之间,y坐标设定为180。

 

Scratch3.0实现接苹果游戏(2)

接着就要引入“重复执行”的模块了,为什么要重复执行呢?一是针对苹果落下时要一直让苹果的y坐标-10,而我们不需确知这个动作要循环的次数,只需要知道y坐标到达底部时,要让苹果重新回到舞台上面的某个随机位置重新下落。二是由于程序没结束时,这个苹果就要重复进行在随机位置自上而下的下落动作,没有次数限制。

因此重复执行中要加入条件语句if…else…,即如果…否则…,当“如果”的条件语句判断苹果当前y坐标大于-180,即还在舞台上时,则将y坐标增加-10,即往下移动10。而当”如果“的条件语句不成立时则说明苹果已经离开了舞台,这时要重新设定苹果的坐标为-220到220之间的x坐标以及y坐标180。

Scratch3.0实现接苹果游戏(2)

至此,苹果不停地随机落下的效果就实现了,读者一定注意到这也是游戏的假象之所在吧,其实,从始至终,只有一个苹果。

 

在现实世界的编程中,苹果可以被定义为一个类,即class,在类中定义出苹果的基本属性,如颜色、重量、品种,以及获取/设定苹果颜色、重量、品种的方法,而声明为此苹果类的不同实例,即对象,就可以作为不同的苹果被程序调用,而每个不同的苹果都拥有所属类中的属性及方法,呃…大脑中残存的面向对象设计理论知识在作怪,话题跑偏了…

 

继续来实现计分。由于在得分之后,苹果要重新做设定坐标位置的操作,因此计分相关的功能块并未放置在角色“碗”中,而还是针对的角色“苹果”。

计分需要”建立一个变量“来储存分数值,点击“变量”中对应按钮,

 

Scratch3.0实现接苹果游戏(2)

在新建变量窗口输入变量名称:count,此变量适用于所有角色,为啥这样设?虽然现在就一个苹果,万一我头脑发热又想加上香蕉葡萄啥的呢?

Scratch3.0实现接苹果游戏(2)

每次程序运行,count的初始值设为0,然后就要不断的监测是否得分的情况出现,因此要用“重复执行”功能块。

这里的得分规则没像篮球投篮时那么精准,只要苹果的红色碰到了代表碗内侧的深棕色就算接到了,因此这里要在if条件语句里用“侦测”中的“颜色…碰到…”来进行判断。

点击“颜色…碰到…”中的第一个颜色区域,在弹出窗口中点击下方的颜色拾取图标

 

Scratch3.0实现接苹果游戏(2)

这时舞台成为了操作界面中的高亮部分,移动鼠标至苹果的红色位置后单击。

Scratch3.0实现接苹果游戏(2)

用同样的方法,拾取“颜色…碰到…”中的第二个颜色区域,即碗内侧的深棕色。

 

如果监测到上述颜色碰撞的情况该做如何操作呢?首先分数要+1,然后要让苹果位置再次变为舞台上方的随机位置。

 

Scratch3.0实现接苹果游戏(2)

有心人可能发现了,移动到随机的坐标位置这个功能块在苹果这个角色中一模一样地用了3回,如果不想每次都重复拖拽设定,试试单独选中一个,然后Ctrl+C,再Ctrl+V吧。

至此,接苹果的游戏就实现完成了。但这只是个开始哟!其实还可以更进一步添加多个不同角色来增加游戏难度,例如加个碰了就减分的角色,触碰几次后就Game Over。对苹果触碰到碗之后的变化也可以增强效果,而不像现在那样突然消失,可以通过让碗切换到碗里装着苹果的图片来进行优化。还可以考虑在分数升高到一定分数后改变背景和下落对象或下落速度数量来实现进入新一关的效果,总之,学无止境,从中获得的乐趣也跟着没有止境呢^_^

您必须 登录 才能发表评论!