为什么精灵服装没有改变?

Why does the sprite costume not change?

我刚开始玩 Scratch...

我好像有一只猫的精灵,有两个 'costumes',我猜它们就像帧。

我做了这个序列:

...但是当我点击绿旗时,猫向右移动但服装没有切换。

如果我做一个更简单的序列:

...然后在下拉菜单中手动更改服装,然后服装就会改变。

这里有什么限制?

尝试使用[等待]块:服装之间的变化可能会如此之快,以至于不换装就好像在走路一样...

这是设计使然。默认情况下,循环有大约 1/30 秒的 built-in 延迟。 (有一些方法可以消除这种延迟,但这里是 off-topic。)这样做是为了帮助没有经验的程序员观察循环的效果;也可能使执行速度更加一致(无论客户端的 CPU 功率如何)。

在您的情况下,这意味着 costume2 将在切换回 costume1 之前显示 1/30 秒。 另一方面,Costume1 紧随其后的是 costume2。 因此,您只会看到 costume2.

有多种方法可以解决这个问题。

  1. 将您的脚本更改为repeat 5 { move 10 steps; next costume; } 这会给两种 服装隐含的1/30 秒延迟。如果这仍然太短,请添加延迟 (wait ... seconds)。注意:next costume 环绕,所以假设精灵有 2 套服装,它将在服装 1 和服装 2 之间来回翻转。
  2. 太生涩了?使用 glide ... secs to ... 而不是 'move and wait'.
  3. 或者只是采取更小的步骤;每隔几步交换一次服装。
  4. 并行制作两个单独的脚本运行,一个用于动作,另一个用于切换服装。这样可以更轻松地为每个指定不同的延迟。