scratch做简单跑酷游戏_Scratch(七)篇外.用小动画和触碰能做大型游戏?

本文通过实例展示了如何运用Scratch的基础知识,如角色、舞台、动画和触碰检测,来创建类似商业游戏的效果。作者强调了基础知识的重要性,并逐步解析了游戏的素材选取、组合动画设计、游戏规则设定以及代码编写过程。游戏涉及敌我飞机的移动、碰撞检测、爆炸效果以及子弹发射等元素,展现了基础编程概念在游戏制作中的应用。
摘要由CSDN通过智能技术生成

有一些同学私信我,前几章节学会角色、舞台和动画,然后再加上第七章的触碰,这些看上去挺简单,但是普遍怀疑这些基础知识的实用性,都想快速进入到编程环节里面。

其实scratch编程不复杂,复杂的是各个基础知识的组合运用。所以今天我就加一个篇外,看看之前学的基础知识能做到哪个程度:

我们先看一段视频:

1e71cd41c166b8de3a00c6a005a9bbf9.png
e107910b901e5eaa13e3837c24124dfc.png

看上去是不是有些商业大型游戏的味道?

其实一点都不复杂,我们来剖析一下就会发现,原来基本都是用的碰撞和小动画组合。

第一,我们先找好素材:

一共就这几个素材,都是网上找的:

7255110d9d7bd14004b60e3d2c83cb6a.png

第二,进行组合和小动画设计:

比如大型敌机的飞行状态,就和上一张小汽车的运动一样,就做了两个造型的切换:

224de377adbcdb7e026768d11eccb954.png
b40ccdf28e7b8ce7b4a8677122a9d158.png

仔细看,就是螺旋桨的两片叶子水平翻转了一下,就可以营造出飞机飞行的样子:

c2f8b0d0f7a734dcbc0dad162ab5bc63.png

爆炸效果也是:

a214ae94dcc21051c4bccebb14bf9eac.png
63cee97f0f9b24afb0e304057cd60025.png
fcd2ef1896d82c8697164dc82fce2fc5.png
6bf052573df5af6a105dcaa2914b89ab.png

灵活使用图片的造型的组合出小动画,这些就是构成大型游戏的基础。

第三,设计整个游戏的规则:

敌人小飞机出来发射子弹,玩家的飞机中弹或是撞上敌机就要爆炸,这就是用到“触碰”。反之敌人中弹也要爆炸,大型机就触碰几次再爆炸。

这是游戏的规则,设定好。

然后开始考虑各种情况,编写代码。我们先看我方飞机代码:

a742668c5ef92e296cd561ee646d533e.png
d234be6194f1ce525ad4947745869f8d.png
b38789e56b1e12115d4fdc4d9c131bce.png

很简单,右边的短一点的代码是检查键盘上下左右按钮来控制飞机移动,左边代码边是飞行状态切换和”触碰”子弹、敌机、激光后爆炸的判断。

下一个是背景,背景是有技巧的,关于怎么做循环背景,这个要用一个比较详细的章节来说,今天的游戏就只用了一段代码:

e7a3bc05af2ebcdfe91e1353e894a3cb.png

但是这个图片选择和角色制作是将一个可以循环的背景图拷贝一份用拼接后再使用,注意看:

c23bf309197151070574eb39472070fe.png

舞台区其实显示的只是背景图片的下半部分,然后让图片往下移动,到上部分快要走完之前衔接到开始的位置,这样就很难看出破绽来了。

我这个作品还没有仔细调试,还是可以看出接缝来的:

ef54f55e6ded980bc5961b019f47dc97.png

背景上有条白线,就是两个背景图拼接的位置。

3985113227f85f2755dc9ab9f9c2de90.png

我们一般会把背景音乐放到背景代码里面去,因为背景程序一般比较简单好控制。

音乐模块我们以后再讲。

然后就是子弹代码:

b39640f34b3f6b48fe0369a17a2dc879.png

监测键盘空白键,如果按下,就启动这段代码。

也是很简单,就是对击中敌人进行“触碰”判定。这里要注意两个知识点,一个是“克隆”,这个模块就是让你每按一下,就复制一次下面的代码,这样就能让子弹连发了。另一个是出发位置的判定,在侦测模块里面有:

c43ff80f5c8c8c34d9bfda24933dedd2.png

这个是得到目标坐标的方法。

这样我们按一下空白键,然后系统就检测一下飞机的位置,然后让子弹从飞机的位置开始向上移动:

951e8265b48f7dea32d3614f395dadb9.png

移动到顶部之后,判断一下子弹的坐标,然后将其隐藏,这样子弹就像是发射出去了看不到了:

ca107bc977efcea7e48dd3232d5716cb.png

自己的飞机好了,下一步是敌人的飞机:

9da06b0b964a21a7ed88c011d80ef850.png

敌机其实也一样,但是多了几个要思考的点:

首先敌机是随机位置出现:

1e1a3c36e1ecd41d5a2c93f43847a2d4.png

然后是随机时间开炮:

d9c16158a185b641bc42ad2c920493ca.png

发个消息出去告诉子弹准备要登场了。

e192575693a1599fb1af916ea52c7247.png
b2aff945e85062bd733a8b328619590f.png

敌机爆炸一次我们加一分,还有一个中弹状态,这里会用到变量这个概念,这也是非常重要的一个概念,我们会用专门的章节来讲变量。

7d940c5761f4a5bc9595743a9bd0b32b.png

其它也是位置判定,飞到底部就消失。

2bc1e533def9e241d82b185cc63ba98f.png

子弹收到广播“准备开炮”之后,且敌机还未爆炸,那么从敌机位置开始发射子弹,这里应该会用到一个关于子弹射击点和玩家飞机位置的一个直线运动算法,但是我们今天不搞那么复杂,我们只用最简单的做法——直接找到玩家飞机位置,然后子弹移动到这个位置即可:

d0a01d465131b0dee221d6520ddaa31d.png

然后还有一个敌人2号和敌机子弹2号,这是为什么呢?

本来可以用克隆,不过我们可以将2号造型更改为其它飞机,就会让游戏内容更丰富,但是我这里就不改了。

2号敌机代码和1号都是一样。参数可以自己调试。

然后是巨型机登场:

ef08fdb2ae79007c6f6d37b57d042b0e.png

代码也很简单,也是我们学过的触碰和移动的组合,然后加了一个中弹量的累加判断:

dcfe27efebe1fe39596ac5ddd383ebdb.png

这段代码就是巨型机中弹一次变量中弹数+1,当中弹数大于20的时候,巨型机就要爆炸,爆炸也是几张图的切换:

be490a272740eddc04b74cd7fe3e0ff4.png

最后就是巨型机的激光武器:

3b05173bcae870c93bc9358d5a46e6fe.png

代码很简单,在巨型机中弹3次后,开始随机时间发激光。

然后游戏只要加个开始和结束画面就可以了,这里我就不做了。

今天的展示主要是移动和触碰的组合,虽然之前章节是基础,但是我们如果掌握基础,就能制作出优秀的作品。所以我们往后的基础课还是得细细打磨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值