【娱乐贴】Scratch最少需要几种积木呢?
scratch吧
全部回复
仅看楼主
吧务
level 15
遧傂鼝 楼主
众所周知,Scratch某些积木的功能可以被其它积木的组合替代。
本帖旨在探讨用“基础的”积木实现所有积木的功能是否可行。
本帖大部分内容仅涉及初等数学知识,各位安心食用[滑稽]
2022年07月03日 02点07分 1
吧务
level 15
遧傂鼝 楼主
首先是动作篇。
我们会发现有3个基本参数:x坐标、y坐标、方向。它们仨显然是无可替代的“基础积木”。
第一个积木是[移动()步]。它是基本积木吗?显然不是!用初中平面直角坐标系和锐角三角函数的知识一通操作下来,你会发现这俩的效果一模一样。[滑稽]
各位会注意到,为了实现[移动()步]的效果,我使用了[移到x:()y:()]这个积木。没错,它也是所谓的“基础积木”。我们所有涉及移动的效果就靠它来实现了。
2022年07月03日 02点07分 2
吧务
level 15
遧傂鼝 楼主
接下来是[向右旋转()度]。它是基础积木吗?开玩笑!
同理,下一个受害者[向左旋转()度]也是如此。
2022年07月03日 02点07分 3
我们会发现,[面向()方向]也是一个基础积木。[滑稽][茶杯]实现涉及旋转的效果就靠它了。
2022年07月03日 02点07分
吧务
level 15
遧傂鼝 楼主
接下来是[面向[]]。为了实现它的功能,我们第一次使用了超出中小学阶段的知识——反三角函数。但反三角函数完全可以通过初中阶段的锐角三角函数和反函数知识推理出。(没超纲.jpg)
大家会发现,我不得不针对鼠标指针和角色分为了两种情况。而如果有更多的角色,我将不得不建立更多的“新建功能块”。难道理论出错了吗?其实这是因为Scratch“新建功能块”不支持新建一个类型为“角色”的参数。
没错!举个例子,用过Unity引擎,使用过C#语言的各位会知道,实际上角色也是一种数据类型,和int、boolean并列。[滑稽]
但不得不说,Scratch自有其特殊之处。新建一个辅助角色,用[面向[]]替换掉[面向()方向],是否会更好呢[滑稽]
2022年07月03日 02点07分 4
我们又会发现,此时使用了(鼠标的x坐标)、(鼠标的y坐标)、([x坐标]of[Sprite2])、([y坐标]of[Sprite2])。这些用来侦测的积木也是基础积木。另:C#里不是只有int、boolean、sprite这些数据类型,我只是举个例子而已[滑稽]
2022年07月03日 02点07分
用hackedblock做可能更好吧.jpg[滑稽]
2022年07月03日 10点07分
吧务
level 15
遧傂鼝 楼主
然后是[移到[]],没什么好说的。
2022年07月03日 02点07分 5
吧务
level 15
遧傂鼝 楼主
有意思的又来了:[在()秒内滑行到x:()y:()]。本来我们是可以轻松实现的。
但问题在于我们无法得知循环一次的用时。经过测算,循环30次几乎是一秒(0.998秒),而使用[在()秒内滑行到x:()y:()]是1.003秒,在误差范围内相等。 然而这只是我的电脑的运行速度,不同设备会存在较大差异。当存在的积木数不同时,运行速度也会有所变化。
因此,严谨地看,它是一个基础积木。虽然没有其它积木的功能需要依赖它来实现罢了。[滑稽][心碎]
2022年07月03日 03点07分 7
level 11
厉害啊!!!!!!!!!
2022年07月03日 03点07分 8
吧务
level 15
遧傂鼝 楼主
然后又是几个卧龙凤雏冢虎幼麟:
[将x坐标增加()]、[将x坐标设定为()]、[将y坐标增加()]、[将y坐标设定为()]
2022年07月03日 03点07分 9
吧务
level 15
遧傂鼝 楼主
又是一个有趣的积木:[碰到边缘就反弹]
唯一的难点在于判断碰到了哪边。单纯用坐标和移动来判断比较困难,因为要考虑到存在面积较大的角色。
于是使用最直观的方法:建立四个辅助角色。[滑稽]之前已经实现过的积木直接替换掉。
注意,此“新建功能块”需要勾选“运行时不刷新屏幕”。
2022年07月03日 04点07分 10
由于角色面积不确定,<碰到[]?>也成为了一个基础积木
2022年07月03日 04点07分
@遧傂鼝 然后这里有一个问题:如果角色较大,又恰好在重度执行移动1步时碰到了另一个边缘该怎么办呢[滑稽]这时候再加一个判断,如果相应坐标未发生改变,那么再执行一次“碰到边缘不成立”。(Scratch没有跳转功能着实不方便)
2022年07月03日 04点07分
吧务
level 15
遧傂鼝 楼主
最后是[将旋转模式设定为[]],显然这是一个基础积木。虽然我们可以用勾选了"运行时不刷新屏幕"的“新建功能块”,配合记录了原始方向的辅助变量和[面向()方向]来近似实现,但在与其它角色交互时会出现一系列问题。
小结:
2022年07月03日 04点07分 11
level 3
楼主加油!
2022年07月03日 06点07分 12
level 12
河南拔智齿[玫瑰]
2022年07月03日 10点07分 13
level 11
Scratch运动模块极简版[滑稽]
2022年07月05日 00点07分 14
level 12
前排
,不换Sc3吗(
2022年07月05日 10点07分 15
sc3积木太大了,截图太费劲;楼里这些图截一次就行
2022年07月05日 15点07分
2022年07月06日 02点07分
level 12
这么多年了你竟然还在活跃[滑稽]
2022年07月05日 12点07分 16
@shiguotao1139 其实潜水也有一年多了,就是最近放假,趁各种面试和学车的空余玩玩scratch
2022年07月05日 15点07分
@遧傂鼝 高考结束了??[滑稽] ,羡慕啊
2022年07月06日 07点07分
1 2 尾页