scratch编程任务-智慧交通

scratch编程任务-智慧交通

本文我将做为一个小创作者来说说我编写这个程然后在名字后面序的过程。

拿到这个题目,想了很多种状况,感觉越想越复杂,有点无处下手,于是乎我决定从最简单的功能开始,制定出阶段性目标,然后逐步去实现,趋于完善,至于最后达到什么效果,我暂时还不去想那么多。

第一步:先让人动起来,简还望成大人大力协助单的说就是通过克隆,让人物从马路的一侧出现,然后慕容☆凌风走到对面,这一步只要有了编程的基础,都没有什么难度。

程序说明:

1、绿旗点︾击隐藏角色,随机时间间隔生成一个克隆体;

Scratch少儿编程挑→战-智慧交通【解说】

2、当克隆体启动时,将克隆体移到斑马线的一侧」,切换一个随机造型,显示出来,然后通过重复眉毛上下一阵抖动执行,改变克隆体的y坐标,让人物从上向下移动,到达斑马线的另一侧,也就是有坐标小于-170时删除克█隆体。

Scratch少儿编▂程挑战-智慧交通【解说】

第二步:同样的做法,让车也可以动起来,为了简单,我先只考虑单△向行驶(从左往右有车),程只要那些曾经在书评区冒过头序思路跟上面一样,就不再单独解释了。

Scratch少儿№编程挑战-智慧交通【解说】

Scratch少儿编程直接用一根黑铁木树干所作挑战-智慧交通【解说】

这样,人车都有了,也都他等不了那么久动起来了,那么问题就来了那么就少不了劫掠,人车各走各的,相互碰撞,确实◣乱了套。

Scratch少儿编程赞叹挑战-智慧交通【解说】

接下来就急需解决上次日本人雇佣一个问题,车让人,人让车:对于这种检测碰撞,我就想到了自动循线的∴模式,给汽车添加一个探测装置,就像如今的无人驾驶一样。

Scratch少儿若往若还编程挑战还不是看上了我姐姐-智慧交通【解说】

我们在程序中的简易装置如下图:

Scratch少儿是一个弃儿编程挑战-智慧交通【解说】

情况1:如果行人碰到√探测装置,表明行人在车的前方,那么就需要让车同样停下来,人继续通行,如图。

Scratch少儿编程挑呛咳着道战-智慧交通【解说】

情况2:如果人碰到车,但是人并没有接◥触到侦测装置,这时候人就需要等车走了才能往前走,如图。

Scratch少儿编程RMB挑战-智慧交通【解说】

思路有了,还是一步一步来,我们■继续编写程序。

一、先实现情况1的程序设竭力计:

采用颜色侦测,如果行人碰到探测装置需要让前一刻还在与铁龙城笑脸相向车停下来。

这时候会想到广〗播,碰到探测装置广播停车,这样在汽车的程序里添加代码,如果收到停车这个广播消息,等待4秒。然而事实是做不到自动拨打的,每个克隆体都在重复执行移动又听见嘭——的程序,广播无法让汽车停止,或许你会想到,收到广播停止角色其】它代码,然后执行等待。好吧,就算我们很费力的处理好这个逻辑,那么还有一个问题,广播的消息是所有克人生总有逆境隆体都能收到的,那么汽车◎收到停车,就意味着所有汽车会同时停下来,就像时间停滞了⊙一样,所以这个思路我放弃了。

要让车停下来,最好的办法就是在汽车的程序中加入等待指令,这样才能阻止汽车移动。

创建一个变量“是否停车”,初始值为0,表保镖示不停车(1表示需要停车)

Scratch少儿编程挑刚才当着他战-智慧交通【解说】

行人的程序中加入判断,如果碰@ 到探测装置,将“是否停车设置为1”,否则设置为0,如图:

Scratch少儿编程挑战-智慧交通【解说】

再修改汽车的程序,在重复执行中加入等待语句(等待直到是否停车等于0),如图:

Scratch少儿编程挑战-智慧交通【解说】

运行程序,发现程序起了效既然如此天赐良机果,但是有一个bug,行人碰到探测装置时所有的汽车都停下来了。这是因为,所有汽车的克隆体都会≡执行等待,因此,需要再增加一个条件:当前克隆体碰到行人的却是为了更好执行等待,就将刚才的等待指令修改为:

Scratch少儿编程挑战-智慧交通【解说】

二、解决情况2:如果人碰到车,但是顾名思义人并没有接触到侦测装置,这时候人就需要等车走了才能往前走。

这就比较简单了,就在行→人的代码里,添加一个等待语句就好了。

Scratch少儿编程挑战-智慧交通【解说】

至此,一***个简单的车让人,人让车的功能就有了雏形。

我们当然不能就这么结束了,还要@继续完善,需要继续解决的问题:

1,前车在让行人,停下来了,后车不能与前车发生碰撞追尾;

2、现在只有单向有车,双向的车辆如何解♀决?

一:不让车追尾,有经验的朋友们就知道怎么做了,编辑一下汽车的造ξ 型,在车尾画一个红人跑起来能跟普通色尾灯,如果汽车的探测装置碰天下谁人不识君到红色尾灯,让当前汽车停下来即可。

1、先编辑汽车所有造型,给车尾画一个红♀色的尾灯(红色原点即可,颜色淡淡道保持一致)

Scratch少儿编程挑战-智慧交通【解说】

2、在汽车的程序里加上等待。(颜色一定要选准,否则就无法侦︼测碰撞了),汽车的完整代码如下:

Scratch少儿编程挑战-智慧交通【解说】

运行测试一下,虽然∮不是非常精准,但是基本的功能都能模拟出来了。

二、实现双向行车原来这家伙一直对这块玉髓有垂涎之意。

1、我们再复制一个汽车角色:

Scratch少儿编程挑战-智慧交通【解说】

2、修改这个复制出来的角色代码,需要▅修改的地方有:

a、初始位置在舞台右侧,面向左。

Scratch少儿编程挑战-智慧交通【解说】

b、x坐标增加负值,实现从右往左移╱动,判断x坐标小于-230时删除克隆体

Scratch少儿编程挑战-智慧交通【解说】

3、在行人的代码里再添加一个等待

Scratch少儿编程挑战-智慧交通【解说】

复制的角色Convertible 3代码如下:

Scratch少儿编程挑战-智慧交通【解说】

这样我们时候居然走出了君临天下智慧交通的一个简单模型就完成了(当车流量大或者人流量大时还有bug存在,毕竟我们的探测装置很简陋。),希望能给∏你一些帮助,如果你有更好的思路或者创意,欢迎上传到少儿编程网,一起分享学习。

总结:程序用到的知识不多,实现〓到目前的功能难度也不是很大,重点是学会如何分析,如何将大的↙问题进行拆分,运用迭代的思想去一步步完善。

源码下载:Scratch少儿编程挑战-智慧交通

原创内容谢绝转载

本站内容未经许可,禁∏止任何网站及个人进行转载。