为什么精灵被触摸后不隐藏?

Why doesn't the sprite stay hidden after being touched?

提问人:Christian Bredli 提问时间:8/16/2023 最后编辑:Karl KnechtelChristian Bredli 更新时间:9/19/2023 访问量:166

问:

我在 Scratch 中有一个精灵脚本(也可以在麻省理工学院的编辑器中查看):

Screenshot of code

当 Kai 触摸精灵时,它只会短暂消失,但即使 Kai 仍在触摸它,它仍然可见。难道它不应该只有在 Kai 完全从精灵中移除后才能看到吗?

mit-scratch (英语)

评论

0赞 Ruud Helderman 8/18/2023
请注意,您不能触摸隐藏的精灵。如果您在触摸 Kai 时对 'Line' 进行精灵化,则在下一次循环迭代期间,触摸块不再检测到触摸(因为 Line 是隐藏的),从而导致脚本再次出现 Line。hideshow
0赞 Karl Knechtel 9/17/2023
这回答了你的问题吗?精灵在 Scratch 中消失,即使触摸另一个精灵也是如此

答:

1赞 mine_greg 8/20/2023 #1

这里的问题是你不能触摸隐藏的精灵。所以代码运行如下:

  1. Kai 正在接触 Line,所以 Line 隐藏起来

  2. 由于您无法触摸隐藏的精灵,因此 Kai 不会触摸 Line,因此该线会显示。

一个快速的解决方案是使用[将(重影)效果设置为(100)]而不是[隐藏]和[将(重影)效果设置为(0)]而不是[显示]。这将起作用,因为您可以触摸一个隐形/幽灵精灵,所以现在它像这样运行:

  1. Kai 正在接触 Line,所以 Line “隐藏”

  2. Kai 仍在触摸 Line 的幽灵,因此 Line 将继续“隐藏”

  3. 假设 Kai 移动并停止触线

  4. Kai 不再接触该线,因此该线将“显示”。