我正在尝试编写一个临时代码,在按下按钮时会显示一个特定的精灵,在另一个按钮上会显示另一个精灵,第一个应该消失。
我想知道应该在这里使用的划痕的基本功能。
答案 0 :(得分:5)
有几种不同的方法可以做到这一点。有很多方法可以使用更少的脚本或更少的精灵,并使用不同的方法。这里有两种方法,显示两种不同的方法,最后是奖金。
让我们以最简单的方式开始。
4个精灵,8个剧本,16个街区。使用广播。
在此,我们将使用四个精灵:
我们有一个Scratch精灵,一个Gobo精灵,一个ShowGoboButton精灵和一个ShowScratchButton精灵。
这些精灵中的每一个都有脚本。
对于按下按钮时显示和消失的两个精灵 - Gobo和Scratch - 我们需要让它们在事件发生时显示和消失 - 单击按钮时。所以当点击按钮时需要发生一些事情。我们怎么做?随着这个SPRITE CLICKED块。将其与另一个块(BROADCAST块)结合使用,我们可以在按下它时执行某些操作。
这就是ShowGoboButton精灵在其脚本中的含义:
当点击该按钮时,它会广播一条消息......但此刻,它正在广播中。没有人在听广播。 Gobo(和Scratch)精灵需要听广播,然后根据听到的内容显示或隐藏。
这就是Gobo隐藏在剧本中的内容:
WHEN GREEN FLAG CLICKED脚本在项目启动时显示精灵。另外两个都是从我收到的帽子块开始的,它是如何收听广播的。它会监听这两条消息,如果它是正确的消息,它会显示出来。如果它是错误的,它就会隐藏。
从那些,推断到其他两个精灵 - 它完全相同的代码,但相反。
这是最简单的方法,也是最有效的方式,也是初学者最好的方式。但是,如果你处于略高的水平,那么使用变量会更好。
4个精灵,4个脚本,26个街区。使用变量。
现在我们设置一个变量,而不是广播。在查找块时,可以在“数据”部分找到变量。
等等 - 变量究竟是什么? 变量就像一个盒子,暂时保存你放入的内容。你可以把任何字符串放在一个变量中 - 数字,字母,混合......
因此我们的变量将被命名为#34; WhichSpriteShows",我们将使用此框来存储精灵应该显示的数据。
进入代码,回顾广播。现在我们不再使用按钮广播,而是设置变量。
所以这就是GoboButton现在正在做的事情:
该按钮不再广播消息;现在,它只是改变了框中的内容。
现在,我们不再让Gobo听广播,而是让Gobo注意变量设置的内容 - 框中的内容。
这就是Gobo里面的内容:
哇,哇,哇。你可能会问,永远有什么。为什么我们首先将WhichSpriteShows设置为0?如果变量设置为" Gobo"之外的任何内容,为什么不隐藏精灵呢?通过将简单的HIDE块放在IF ...,ELSE块的ELSE部分而不是执行看似冗余的检查,看它是否设置为" Scratch"?FOREVER是必要的,因此脚本总是会监听变量的当前状态。
决定设置" WhichSpriteShows"到" 0"在开始时,以及额外的检查,以查看它是否设置为特定的ELSE是这样,当点击绿色标志时,两个精灵都将显示在开头。如果您不想要,可以相应地修改代码:)
与广播一样,为Scratch sprites推断。
<强>加成强>
现在......如果你想让真正花哨,并且使用更少的精灵,那么只用两个精灵就可以做到这一点。克隆的魔力。我不会在这里解释太多,因为一切都应该是相对自我解释的,如果你做的是我告诉你的最复杂的方式,那么你必须要么已经是一个Scratcher或者想破坏东西。
2个精灵,3个脚本,61个街区。使用克隆。
要了解其工作原理,您需要了解舞台的设置方式:
按钮精灵的脚本相对简单:
精灵的剧本也不是太疯狂了:
如果你愿意,你可以在here上使用我曾经做过的项目。
答案 1 :(得分:0)