type
status
date
slug
summary
tags
category
icon
password
如果你玩过这种rpg角色扮演的游戏就会对里面的对话效果印象非常深刻,这种让角色对对话逐渐出现的效果配合游戏音乐动画可以让玩家更好的沉浸在游戏的世界当中,那么这种对话效果在scratch中怎么实现的呢?
下面请看我做的一个例子,有请我们的小猫,点击小绿旗,开始有个滑动解锁画面,在森林里女巫看到一只可爱的小猫于是想要收留,如果你是小猫那么你会怎么选呢?
下面开始我们的编程吧
我们新建一个作品
- 我们先从最重要的部分开始那就是打字效果
单打字机效果
完整作品
打字机效果
添加夜晚森林的背景,添加女巫和小猫
我们先讲解一下打字效果的原理,如果使用原有的积木那么应该怎么实现呢?
如果我用原有的积木简单模拟一下应该是这样的效果,
我们输入的内容是”这里怎么有只小猫?”
我们先想一下我们的代码是从上向下执行的,而且这个带时间气泡积木,执行完毕之后就消失了,这样只需要让下面的气泡显示字的时候比上面多显示一个这样由于我们的视觉残留原理我们就好像觉得字再一个个被打出来一样,如果我们再配合音效,那么就更像了
为了控制时间我们定义一个名字为”间隔”的变量,并且设置为0.1s
这样我们就可以控制所有的气泡的打字速度了,我们再来测试一下看下效果,配合一下音效,在自带的音频库中选择使用meow2小猫的叫声
使用裁剪工具将声音截断只留下一部分
上面我们手动模拟了打字原理,这样肯定不是最终的代码,如果想要说下句话是不是需要在每个气泡输入不同的字符,这样太麻烦了我们想要的程序肯定不是这样的,我们需要的是只要把输入内容换一下就可以自动实现打字效果.
下面我们来实现这个效果,我们只需要模拟上面的动作就行了对吗?
注意观察上面重复的部分是那段?
我们只需要将重复部分放到一个有次数的重复执行里面就可以对这些字做处理了
我们先把这部分放到重复执行里试试
那么接下来的问题就是如何让文字一次比下一次多一个呢?
在运算类别里我们有个 [苹果的第1个字符] 和 [连接苹果和香蕉] 的积木我们用这两个积木是不是就可以将下一个字符按照的顺序依次取出来并且拼接出来呢?
我们这时候就需要一个地方把刚刚出现的字存起来,那么这个地方就是变量
需要一个变量来存放要拼接的内容,所以需要定义一个名为”拼接的句子”的变量
这样还少了一个让字符不停滚动的计数器,再定义一个计数器每次循环+1 这个计数器名字为”计数器”
这样运行之后发现打字效果有了,但只能一个个字出现这样我们需要把字拼接起来
使用 [苹果的字符数] 来确定输入的内容字数,字数就是重复执行的次数
这样我们需要用到一个变量名为”要说的内容”来存放对话的内容,这样避免多次写下”这里怎么有只小猫?”
最后让句子停留一段时间
先需要知道输入了多少个字
需要让学生理解打字机效果的原理,需要从以前学过的积木过度过来
像上面那样每次说出比上次多说一个字并短暂停留一会儿,这样就产生了动态效果
我们数数这样的积木用了几次,我们想到了什么?是不是可以使用重复执行
也就是我们需要使用一个重复执行,让积木自动重复,每次重复的时候让输入的字数多一个
原理讲解
这个问题就变成了如何每次循环的时候让文字多出一个,我们首先需要一个变量存储输入的句子