猫史档案馆


【教程帖】难度:中级(注:本教程帖使用软件为scratch,非kitten)

用户:SKQASKQA查看:90 回复:4 评论:17 创建时间:2020-04-08T12:31:31


宝可梦小说工作室的第一个教程帖来了,今天我们来做一个幻影猫的特效。

一、看看效果

我们先看看效果吧。什么是幻影猫呢?幻影猫就是在移动的过程中,后面会有一些猫的映像出现,就这么简单~

二、角色

幻影猫嘛,角色无非就是一只猫咯~

三、程序

现在就开始我们的程序吧~

任务1 让猫移动起来

我们先让猫动起来吧。我们可以设置用上下左右键或wsad键控制猫,可以根据自己的喜好来决定什么键。本人喜欢用上下左右键,无非就是当按下上键y坐标增加,当按下键向y坐标减少,以此类推咯~

center_image

划重点!

但是怎么做会有一个严重的问题,就是移动不流畅。什么意思呢?当你按下上键时,你会发现,移动的步数会短那么一点点!并且当你长按上键时,移动速度简直超慢,特别是第一次!为什么会这样子呢?

↓↓↓

因为,scratch中的事件积木是有卡顿的,scratch中事件积木在很短的时间内只会执行一次,而不会执行很多次。毕竟kitten也只能判断首次按下呀。怎样理解它呢?在scratch中,有这样一个积木:

center_image

这个积木是来侦测响度是否大于10的。但是,如果你的响度一直大于10,虽然一直大于,但它也只能执行一次!也就是说,下一次执行会等待响度不大于10。这是为什么呢?

因为啊,我们知道,计算机执行程序是瞬间执行完毕的,但是如果你响度大于10了,持续的时间终归会大于这一瞬间。所以,计算机会为了保险,而等待下一次大于10再去执行下面的程序。

继续回过头来思考前面的问题,我们要的移动是没有卡顿的,我们要让计算机不停的判断是否按下了方向键。所以,我们需要重复执行,一直判断是否按了方向键。

center_image

继续划重点!

哈哈,如果你真的这么做,那你就大错特错啦!

为什么呢?

用事件积木编写的代码我们称之为“事件驱动机制”,用重复执行+如果那么编写的代码我们称之为“轮询机制”。

我们可以先来想象一下计算机执行两种机制的方式。

如果计算机执行“事件驱动机制”,计算机只需要等待条件为真后执行下面的程序即可,但是缺点是下一次执行会等待条件不成立。

如果计算机执行“轮询机制”,计算机会不停的问自己条件是否成立。

发现了吗?轮询机制也是有缺点的。

轮询机制的缺点是,计算机会不停的问自己条件是否成立,计算机会花费很多没有用的力气,发现了吗?

所以,我们又要避免事件驱动机制的卡顿,还要避免轮询机制的卡顿,两者融合,就形成了特殊形式的轮询机制。

我们需要一直等待着按下按键,按下按键了之后移动,一直重复。如图:

center_image

再次划重点哦~

哈哈,这又引来了一个新的问题。

我们知道,计算机执行程序是一瞬间就执行完毕的,我们按下按键的时间肯定也比它长。所以当按下按键的时候,计算机就会不停地等待按下按键,但已经按下了。能想象吗?

但是我们要的不是卡顿呀!所以,这是最优解决方案了!

至此,我们的任务1才到此结束。

如果你能想到这里,那你就厉害了!

如果有更优质的解决方案,欢迎在回帖区留言!

任务2 幻影

接下来到我们的幻影了。刚才说过幻影猫是指后面有一些猫的映像出现,那这些猫肯定是克隆体。

想到这了,无非就是不停的克隆,克隆体淡出,然后删除咯~

center_image

因为虚像为一百就是不可见,那么如果要让克隆体逐渐隐藏就是重复增加直到为一百。我觉得重复10次增加10是一个合理的数值,当然这里的快慢可以自行调整。注意即使不可见也需要删除克隆体,因为scratch克隆体有上限,最多300个克隆体,所以如果不删除克隆体,就无法生成更多的克隆体。

幻影猫至此就完成了~如果对此案例有问题,欢迎在回帖区留言~


回复

上一页第 1 页 / 共 1 页下一页
明星喵明星喵

...

点赞0


评论

到底怎么了啦


燚卿燚卿

好样的~

点赞0


评论

谢谢

我做的教程帖就是这样的,可以听思路,而不是解读人家的代码。是搞懂“为什么”,而不是搞懂“是什么”。需求决定技术。这是我做教程帖的核心。

皮卡邱,我下次就不是这样做教程帖了,我不会拿案例去做了,我例子不多,有时候综合的时候会做一个案例。我以后大多都是讲技巧。

多么清晰的思路

愈发怀疑你不是二年级的

我确实是二年级的啊,编程我是一年级学的,我先从scratch学起的。我一直上课,上课上到一定地步之后,觉得一个一个积木块上下去要上到猴年马月去。于是我就自己看着积木名称理解积木的含义,也学的很快。现在要……要学算法了,研究更深的算法之后,我想到了这一方案。所以,现在,简单的案例也渐渐淡出我的视野了,我现在需要技巧。

呵呵没事啊

太厉害了

没事啊

应该的


传闻中的五音璃音传闻中的五音璃音

为什么不用kitten?

点赞0


评论

不会用啊,萌新

我是kitten萌新但是scratch高手啊。。。

我也从不会到会用的。会用了,就很好用。里面有公开课,试一试就很快就会了

其实也差不了多少啦

我知道

本来习惯scratch了,但是kitten也蛮习惯了


********************

前排

点赞0


评论