最新消息:

Scratch(七)篇外.用小动画和触碰能做大型游戏?

Scratch 少儿编程 13028浏览 7评论
Scratch零基础魔法编程

友情提示:视频教程观看时请手动设置清晰度。

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

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

我们先看一段视频:

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

第一,我们先找好素材:

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

爆炸效果也是:

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

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

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

音乐模块我们以后再讲。

然后就是子弹代码:

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

然后是随机时间开炮:

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

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

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

然后是巨型机登场:

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?

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

 

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

 

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

 


 

Scratch零基础魔法编程(一)为什么你要学Scratch儿童编程
Scratch零基础魔法编程(二)来不及解释了,马上开始编程游戏
Scratch零基础魔法编程(三)剪刀石头布
Scratch零基础魔法编程(四)舞台区详解
Scratch零基础魔法编程(五)角色详解
Scratch零基础魔法编程(六)用“角色”与“舞台”的组合做个小动画
Scratch零基础魔法编程(七)“触碰”基础
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(八)声音模块详解

转自知乎:
import 潘多拉

您必须 登录 才能发表评论!

网友最新评论 (7)

  1. 非常感兴趣,非常佩服,希望得到素材一试
    s6年前 (2018-09-13)
  2. 我想要素材 可以发给我吗? 谢谢
    zhu02266年前 (2018-10-14)
  3. 邮箱 zhu0226@126.com
    zhu02266年前 (2018-10-14)
  4. 我找来的图片 大多不太好用 在什么地方 可以找到素材呢 ?
    zhu02266年前 (2018-10-14)
    • 去搜索引擎按关键词找吧,这素材我也没有。
      少儿编程6年前 (2018-10-15)
  5. 希望能发邮箱,谢谢!464697590@qq.com
    王玥儿6年前 (2018-10-24)
  6. 佩服!!
    test6年前 (2018-10-29)