Scratch还能做出这么酷炫的3D效果?

哇!

酷炫的3D星空效果,想知道怎么实现的吗?

绘制角色

Scratch版本3.22.0

首先把小猫干掉,我们选择自己绘制角色。

按住shift再绘制圆形,可以画出正圆!但是画之前,先选好填充颜色。这样填充会给人一种3D立体的感觉。

下面开始画圆,大小在40*40左右即可。

选择背景

由于是星空,所以我们需要选择深色背景(如Galaxy、Stars、Nebula),也可以像我一样直接拿一个黑色长方形~

编程

本体

这个程序中,本体要做的只有一个,那就是不停克隆自己:

距离

我们平时看东西,会有一个「近大远小」的现象,距离我们比较近的都会特别大,距离我们很远的都会很小。

对于我们的星星也可以这样来设计,首先创建一个变量距离,因为每个星星到我们的距离都不同,因此这个变量仅适用于当前角色。假设星星到我们的距离时1到10之间,那么可以使用随机来创建不同距离的星星。

大小

当距离越小,角色就应该越大;距离越大,角色就应该越小。角色的大小和距离成反比。那么可以使用除法来设置角色大小:

开始移动

下面只需要让这些星星从右向左移动就行了,先移到最右边,再减少x坐标,直到移出舞台。

看看效果:

噢,我的上帝,看起来速度相同还很快,一点也不3D啊~

速度

除了近大远小,还有「近快远慢」。当你坐在车上,看眼前的大树,它们嗖嗖嗖的从眼前闪过。而如果看看远处的山,却感觉它好像几乎没有移动。

所以把近处(距离小)的星星速度变快,远处的变慢吧。又是反比,继续使用除法!

优化

至此程序已经基本完成了,不过还有一个不合常理之处,那就是小的克隆体会出现在大的克隆体之上。这里涉及到一个「层」的概念,我们根据距离,将角色后移相应层数即可。

全部程序和运行效果