有同学私信我。 他们在前几章学习了角色、舞台和动画,然后加入了第7章的感动,这些看似简单,但普遍怀疑这些基础知识的实用性,都想快速进入编程环节。
其实scratch编程并不复杂,复杂的是各种基础知识的组合应用。 所以今天再补一篇文章,看看之前学的基础知识能做到什么程度:
我们先看一段视频:
看起来像商业游戏吗?
事实上,它一点也不复杂。 我们分析一下,发现基本上就是碰撞和小动画的结合。
首先我们先来找素材:
资料一共就那么几个,都是在网上找的:
二、进行组合和小动画设计:
比如大型敌机的飞行状态和上图小车的运动是一样的,切换了两个模型:
仔细看,螺旋桨的两个叶片水平翻转,营造出飞机飞行的样子:
爆炸效果也是:
将小动画与图片、形状的灵活运用相结合,是大型游戏的基础。
三、设计整个游戏的规则:
敌人的小飞机出来发射子弹,玩家的飞机被击中或击中敌机就会爆炸。 这就是“触”的用法。 反之,如果敌人被击中,它也会爆炸,主机接触几下就会爆炸。
这是游戏规则,定下来。
然后开始考虑各种情况,写代码。 先看看我们的飞机代码:
很简单,右边较短的代码是勾选键盘上的上下左右按钮控制飞机的移动,左边的代码是切换飞行状态和判断爆炸后“触摸”子弹、敌机和激光。
接下来是背景,背景有技巧,如何循环背景,这个会用到更详细的章节,今天的游戏只用到一段代码:
但是这个选图造字,就是复制一个可以循环的背景图,拼接后使用。 注意:
舞台区其实只显示了背景图片的下半部分,然后将图片向下移动,直到上半部分快完成后才连接到起始位置,这样就很难看出破绽了。
我没有仔细调试这个工作,但你仍然可以看到接缝:
背景上有一条白线,就是两张背景图拼接的地方。
我们一般把背景音乐放到后台代码里,因为后台程序一般比较简单,容易控制。
稍后我们将讨论音乐模块。
然后是项目符号代码:
监视键盘空格键,如果按下,则启动此代码。
也很简单,就是对击中敌人做一个“碰”的判断。 这里有两个知识点需要注意,一个是“克隆”飞机游戏素材,这个模块可以让你在每次点击的时候复制下面的代码,这样子弹就可以连续发射了。 另一个是起始位置的确定。 在检测模块中,有:
这是获取目标坐标的方法。
这样我们按下空白键,然后系统检测到飞机的位置,然后让子弹从飞机的位置向上移动:
移动到顶部后,判断子弹的坐标,然后将其隐藏,这样子弹就好像发射了,看不见:
己方飞机准备就绪,接下来是敌方飞机:
敌机其实也是一样的,但是还有几点需要思考:
首先,敌机出现在随机位置:
然后随机触发:
发送消息并告诉 Bullet 即将出现。
敌机每爆炸一次,我们就加一分,也有被击中的状态。 这里会用到变量的概念,也是一个很重要的概念。 我们会专门用一章来讲变量。
其他的也是定位,飞到最下面就会消失。
等子弹收到“准备开火”的广播,敌机还没有爆炸,再从敌机位置开始发射子弹。 这里应该用到一个关于子弹的射击点和玩家所在平面位置的直线运动算法,不过今天我们不会用到这么复杂,我们只用最简单的方法——直接求玩家所在平面的位置飞机,然后将子弹移动到这个位置:
然后是2号敌人和2号敌人子弹技能特效,这是为什么呢?
克隆本来可以,但是我们可以把2号的外形改成其他飞机,这样会丰富游戏内容,这里就不改了。
2号敌机代码与1号相同,参数可自行调整。
然后是巨型机器:
代码也很简单,也是把我们学过的触摸和移动结合起来,然后加入了子弹发射量的累积判断:
这段代码是超级计算机被炸弹击中时的可变炸弹数+1。 当炸弹数量大于20个时,超级计算机就会爆炸,爆炸也是在几张图之间切换:
最后是巨机的激光武器:
代码非常简单。 巨型机器被射击3次后,开始随机发射激光。
那么游戏只需要添加一个开始和结束画面,这里就不做了。
今天的介绍主要是动感结合。 前面几章虽然是基础,但掌握了基础飞机游戏素材3D素材,就可以产出优秀的作品。 所以我们以后还是要打磨自己的基础课。