Scratch第71讲:飞机大战(三)

网友投稿 2019-11-23 13:57

想了解编程技巧,就请点击上面蓝字:跟我学Scratch编程,关注CC哥



这个游戏越做越有意思,我这次做完之后难度确实增大了,连我这个飞机大战的老手玩起来也觉得挺有难度的,个人觉得这是CC哥做的最好玩的游戏了。今天把轰炸机的部分也做出来了,跟大家分享一下。

学编程要从兴趣出发

学Scratch,CC哥的感觉就是用简单的积木做出自己喜欢的艺术品,有点象乐高积木,一开始只能跟着说明书去安装,后来越来越熟,掌握了其中的技巧,就开始自己设计更多复杂的造型,做出自己喜欢的艺术品,一开始只能做些小的造型,做个小汽车,小房子,慢慢的可以拼成摩天大楼,可以拼各种各样的汽车,轮船,军舰,甚至宇宙飞船。乐在其中,其乐无穷。所以CC哥要告诉家长朋友们,一定不要给孩子学Scratch的时候设定太多的目标,这不是编程大赛,也没什么竞赛名次,那都是不切实际的事情,通过兴趣,培养创造性,思维能力,细心耐心的品质,这样你的孩子在后续漫漫的学习征途中,越走越高,脱颖而出。

游戏演示

这段视频有点大,最好用WIFI看呀,为了录好,CC哥把游戏难度降低之后,才打到子弹满配的情况。

轰炸机的设计构想

轰炸机其实就是更大的飞机,更禁打,血量高。另外可以发射更多的子弹。然后被打掉之后有机会出装备。装备这部分CC哥今天先做的是子弹装备,也就是大家说的“吃子弹”,下次CC哥再把“雷”加进去。所以今天我们的程序就是要做到这几个元素。

轰炸机代码

先确认一下轰炸机的出场规律和生命值,CC哥为了演示的需要,把出现频率设置的有点高。

https://cdn.china-scratch.com/timg/191125/135K5H07-0.jpg

再看轰炸机出场模式:

https://cdn.china-scratch.com/timg/191125/135K54Y8-1.jpg

先看造型,看出问题没有?这个轰炸机没有在造型的中心点上,而是偏下了,为什么?

别的飞机一般出来,碰到舞台边缘就消失了,CC哥都是这么处理的。而轰炸机不行,轰炸机比较大,移动得又很慢,如果碰到边缘就消失显得很别扭。轰炸机应该是慢慢的飞出舞台边缘。

https://cdn.china-scratch.com/timg/191125/135K54P3-2.gif

看到没?这点怎么实现?一般角色是不能完全飞离舞台之外的,怎么做到的?如果不知道的朋友,就好好回头去看CC哥早期的课程,看看冰激凌那一课。做游戏除了做构思之外,就是做细节,尤其是技术细节不能放过,一定要处理好。非技术细节可以偷懒,技术细节不可以哦。

https://cdn.china-scratch.com/timg/191125/135K5H08-3.jpg

这段代码就是轰炸机入场和离场的代码,循环里上半部分是入场,下半部分是离场。入场是传统的代码,离场就是CC哥说的能够让角色完全离开舞台的技巧。入场的代码不能用离场的来代替,为什么不行,大家试一下就知道了。

轰炸机发射子弹:

https://cdn.china-scratch.com/timg/191125/135K633B-4.jpg

这里面有两点,子弹是单独的角色,所以需要轰炸机和子弹来做配合,CC哥说过,都是克隆体的游戏,尽量克隆体之间沟通不要用消息,为什么以前解释过很多遍了。所以这里我们用“轰炸机发射”这个变量来做沟通用的变量。用“轰炸机发射位置x,y”来记录子弹发射的位置点。第二,不是每一次轰炸机出场都发射子弹,所以CC哥的这个判断语句的条件就是取50%的概率,轰炸机会发射子弹。

轰炸机被击中过程的效果:

https://cdn.china-scratch.com/timg/191125/135K63642-5.jpg

https://cdn.china-scratch.com/timg/191125/135K63332-6.jpg

这部分是做完之后,CC哥才加上去的,做完完的时候,CC哥突然发现,轰炸机一般要打半天才打掉,都不知道轰炸机还剩多少血量,打起来挺灰心的,不知道什么时候才能被打死还要不要继续打,还是放过去。为了解决这个问题,CC哥觉得如果在轰炸机在不断被击中的过程中,随着血量的降低,飞机上不同的位置开始着火,就能充分表现这一点,后来加上去发现效果还不错。

轰炸机被击毁的代码:

https://cdn.china-scratch.com/timg/191125/135KJ4c-7.jpg

击毁的效果CC哥就地取材,就用了子弹角色的造型,不过就是个头大些,然后被击毁后,这个爆炸造型不断变大,然后消失。

https://cdn.china-scratch.com/timg/191125/135KHF0-8.jpg

https://cdn.china-scratch.com/timg/191125/135KG960-9.jpg

赠送装备这部分因为这次只有一种装备送,所以没做判断,同时装备也没做克隆,就用消息来处理好了。

轰炸机发射子弹

https://cdn.china-scratch.com/timg/191125/135KI3E-10.jpg

这两段代码一个是什么时候发射子弹,一个是怎么发射。都是放在子弹角色里,跟敌机发射的子弹的角色是一个角色。为什么用自定义命令是为了发射效果。

https://cdn.china-scratch.com/timg/191125/135KW407-11.jpg

用自定义命令,运行时不刷新屏幕后就是第二种效果。

奖励装备

https://cdn.china-scratch.com/timg/191125/135KVc7-12.jpg

https://cdn.china-scratch.com/timg/191125/135KQ055-13.jpg

这个造型也是就地取材,直接用两个子弹拼在一起,然后画个圈就好了。

代码也简单,引用了计时器,确保如果20秒还不被吃掉,那么标志就消失,代表没吃到,如果知道了就提升子弹级别。

子弹级别是引入的新的变量,一共分四级,也就是一排最多4发子弹。

所以战机子弹的角色部分也要做出调整,需要在根据子弹的级别来判断子弹的发射模式了。下面这段代码就是对发射子弹部分做的改变。

https://cdn.china-scratch.com/timg/191125/135K95933-14.jpg

https://cdn.china-scratch.com/timg/191125/135K945M-15.jpg

稍微复杂了点,但是很简单,就是子弹克隆的位置放好就行。

总结

今天就讲这么多,一些因为引入轰炸机引起的小的改动,比如战机撞到轰炸机等这些小调整都是在判断上略微调整,就不再一一列举了。飞机大战还准备再做一讲,准备把护航飞机和大炸弹也做进去,然后飞机大战这一个主题就可以结束了,大家期待不?

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com