Scratch跳一跳怎么做(游戏脚本设计)

运用scratch我做了一个跳一跳小游戏,首先我要确定游戏流程, 小恐龙跑向障碍物,玩家用键盘的空格键控制恐龙跳跃 如果恐龙跳过障碍物则游戏分数加一 如果恐龙接触...
 

首先这并不是一个制作教程,因为它对于小朋友来说还是很有难度的,那么我分享的主要目的就是希望大家在面对一个比较有挑战的项目时该如何应对,下面就通过这样一个具体的例子来说一说是如何开始并一步步做出这个游戏的。

scratch跳一跳程序下载(请使用电脑打开):

http://www.kidscode.cn/product/5490


分解目标:

第一阶段:实现当鼠标按下的时候“小人”能够发生形变蓄力,同时有声音特效。【比较有把握】

第二阶段:松开鼠标声音停止,“小人”跳出去,根据蓄力的时间长短控制“小人”跳的远近。【比较有把握】

第三阶段:“小人”跳跃成功的判断【情况较多,难度大】

第四阶段:盒子的处理,“小人”在成功跳跃到下一个盒子上时,盒子与“小人”能够同时向左侧移动,然后再出现下一个盒子,然后这样一直重复下去。【比较困难,没有把握】

第五阶段:计分,跳跃成功+1分,如果落在盒子中心+2分【简单】

 
我的实践体验:怎么用scratch做跳一跳小游戏?
 

制作中的那些坑:

第一阶段:

目标相对比较简单,“小人”有多个造型,在鼠标按下的时候,让“小人”的造型按顺序切换,即实现了形变的效果。

那么这个过程中有一个小坑,不是所有时间只要按下鼠标就要让“小人”变形,比如我们开始运行时就要点击绿旗,此时肯定不能去执行形变;

“小人”在空中跳跃时点击鼠标也是不被允许的。同时执行的另一个工作就是在“小人”发生形变的同时要播放音乐,鼠标松开要停止这一切。

因此这里我使用了一个“music”变量,通过对这个变量的改变来控制音乐。

第二阶段:

相对没有什么难度,跳跃分为两个步骤,起跳:同时改变x,y坐标,实现向上向右的移动,下落同理。跳的远近可以在第一步根据鼠标按下的时间长短(music变量有个变化)来作为一个参考值。

第三阶段:

跳跃成功判断,首先我们要有第二个落脚点,思路很简单,在开始的时候克隆一个盒子,随机放在同一水平位置。如果克隆体碰到“小人”,成功;否则失败。

这里又遇到一个问题,一开始就提示失败,因为此时“小人”还没跳,自然不会碰到克隆体。因此又需要一个变量“status”,来判断“小人”是起跳前还是起跳后。只有在起跳下落后再进行判断成功失败。貌似问题这么容易就解决了,但是忽略了一个问题,如果“小人”起跳下落后还在起始的那个盒子上,这样既不能说成功,不能得分,也不能算失败。

于是乎我又增加了一个判断条件,判断“小人”与盒子(非克隆体)是否接触。新建变量“接触到本身判断”在下落后先判断与母体的接触,如果接触到母体,不再进行与克隆体的判断。

第四阶段:

“小人”终于完成了第一步的大跳跃,下来我们要把克隆体的盒子和“小人”一起向左侧移动,再克隆一个新盒子,如此一直重复下去。克隆体移动很简单,直接移动到母体盒子的初识位置即可,“小人”需要同步移动,这里首先要使用一个变量“克隆体x坐标”用它来记录克隆体位置的x坐标,便于计算出“小人”要往左移动的距离,得到终点坐标,让“小人”移动过去;母体在在克隆体移动的同时也左移,如果碰到边缘就隐藏。

目前看似一切都比较顺利,但是不知不觉又入了另一个坑,当成功完成第一次跳跃后,进行第二次跳跃判断时问题来了,此时“小人”就在一个克隆体盒子上,如何判断跳跃到下一个克隆体上,还是落在了自身克隆体上?怎么区分两个克隆体?此处尝试了很多种办法,最终都不理想,那么是时候改变思路了,既然无法区分两个克隆体,那就只留一个克隆体,至少区别克隆体和母体还是可以做到的。于是乎,我修改了左移盒子的思路,左移开始的时候把母体盒子隐藏,克隆体移动到左侧,此时删除掉克隆体,将母体切换到克隆体同一个造型(新建变量“克隆体造型”记录克隆体的造型)显示,这样母体盒子就替代了之前的那个克隆体,肉眼是看不出来的,此时问题就解决了。

最后一步:

增加计分变量,这里就比较简单了,跳跃成功呢+1分,如果跳跃落点与克隆体盒子的中心点距离小于5我们就+2分。至此这个游戏基本上就完成了,后来我还增加了落到盒子边缘的判断,原理就是判断落点与盒子中心的距离,也没有什么难度。

 
我的实践体验:怎么用scratch做跳一跳小游戏?
 

总结:

在遇到一个项目时不要盲目动手,先去思考,把项目进行功能拆分,罗列出来,先去动手解决你能完成的部分,然后在空余时间去思考那些比较困难复杂的环节(如果某个拆分的功能依旧复杂,尝试着进一步拆分)。

总之我们需要行动起来,不要盲目动手也不可望而生畏,任何程序都是由小的功能组成的,今天的努力也许会给你明天的思考带来灵感,更何况我们遇到了困难还可以去求助别人,如何向别人描述自己的问题也是一种表达能力的锻炼。

很多人抱怨scratch功能有缺陷,但我想说的是这是一个给孩子使用的工具,毕竟不是为了培养孩子的程序代码能力,重要的是锻炼孩子的思维逻辑能力,解决问题的能力。

解决问题可以借助各种强大的工具,也可以通过思考利用有限的工具创造出奇迹。正式有了各种局限才让它更具魅力,它会激发你不断去思考,不断去尝试。

来源于网络,版权归原作者所有,如有侵权请联系删除。

如果你家孩子也对编程感兴趣,想体验神奇的编程课,欢迎点击文章评论里链接免费领取~

或进入主页下方点击0元试听按钮领取~

会有老师主动联系你1对1授课喔~

 
本文来自网络,不代表本站立场,转载请注明出处: http://www.fxqlsy.cn/zixun/8341.html
返回顶部