Day 17 ( 中级 ) 立体空间 ( 三度空间 )

立体空间 ( 三度空间 )

教学原文参考:立体空间 ( 三度空间 )

这篇文章会介绍,如何在 Scratch 3 里使用重复无限次、逻辑判断、数学计算、尺寸设定...等积木,实作一个简单的立体空间效果,越靠近角色,则角色尺寸愈大,越远离角色,则角色尺寸越小。

相关文章参考:重复逻辑判断数学计算尺寸设定

背景设定

点选「选个背景」,在舞台加入一张立体空间的背景 ( 在预设「太空」类别中 )。

Scratch 3 教学 - 立体空间 ( 三度空间 )

积木程序原理

编辑当绿旗被点击时,使用重复无限次积木,让猫咪角色定位在滑鼠的位置 ( 跟随滑鼠移动 )。

Scratch 3 教学 - 立体空间 ( 三度空间 )

从左侧积木清单建立一个变数 size。

Scratch 3 教学 - 立体空间 ( 三度空间 )

设定 size 为「x 座标的绝对值 x 0.7」,并将尺寸设定为 size 大小

舞台中心点的 x 座标为 0,左右两侧分别是 -240 和 240,使用绝对值会让数值为正,乘以 0.7 是避免尺寸太大。

Scratch 3 教学 - 立体空间 ( 三度空间 )

点击绿旗执行後,用滑鼠在舞台左右移动,会发现猫咪越往中心靠近,尺寸越小,越往左右两侧移动,尺寸越大

Scratch 3 教学 - 立体空间 ( 三度空间 )

不过如果只有水平方向 ( x 轴 ),会发现猫咪不论在上方或下方,靠近中间都会变小,为了修正这个问题,必须加入垂直方向 ( y 轴 ) 的判断。

  • 加入「如果...那麽」积木,判断如果「y 座标 x 1.33 的绝对值」大於「x 座标的绝对值」,就以「y 座标 x 1.33 的绝对值」为主
  • 加入第二个「如果...那麽」积木,判断如果「x 座标的绝对值」大於「y 座标 x 1.33 的绝对值」,就以「y 座标 x 1.33 的绝对值」为主

因为 Scratch 舞台比例为 480x360 的 4:3 比例,所以将 y 座标乘以 1.33 ( 4 除以 3 ),就会得到和 x 座标接近的数值。

Scratch 3 教学 - 立体空间 ( 三度空间 )

完成效果

完成後,点击绿旗,用滑鼠在舞台上移动,就会看见立体空间的猫咪,越靠近边缘越大 ( 感觉靠近萤幕 ),越靠近中心越小 ( 感觉远离萤幕 )。

Scratch 3 教学 - 立体空间 ( 三度空间 )

范例解答

范例解答:立体空间 ( 三度空间 )

延伸练习

如果已经熟悉了立体空间 ( 三度空间 )的原理,还可以尝试更多好玩的作法:

  • 尝试改变猫咪的「亮度」,让立体空间效果更明显。( 解答 )

关於我

大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!


<<:  03 从专题研究中学习

>>:  [Day03]程序菜鸟自学C++资料结构演算法 – 常见的线性串列其一:阵列Array List

04
杂谈    

[D29] 检测框的精准度

现在来更加了解准确度这件事吧! 在前面有讲过 IoU ,它是用来跟标准框比较的准则,当它的值(0~1...

[day-18] 认识Python的资料结构!(Part .5)

认识dict(字典)   dict(字典)跟set(集合)很像,不过dict(字典)采用的元素储存方...

[Q&A] 06 风险评监报告生出来前的修修改改

资讯安全管理制度运行过程中,会对即有的企业或机构文化带来一定的冲击。 顾问有教过、学员有学过都是真的...

LeetCode 解题的思考策略与解题地图

什麽时间点该考虑 LeetCode 刷题? ▶「你有听过「白板题」吗?你知道技术考试在面试时会用什...

伸缩自如的Flask [day12] Sql Database

好的,这里来使用Sql的DataBase,我相信你已经知道或调查过了NoSql跟Sql两种Datab...