没有完美的方法来做到这一点。如果你可以忍受这个真实的事实,那么随时可以继续。
有几种不同的方法可以做到。
repeat until
第一个也是最简单的一个是:
但这在技术上并不是脚本的一部分 - 它只是重复,直到某个值返回true。
stop this script
为了在脚本内部执行此操作,您需要使用自定义块的偷偷摸摸的小技巧。
创建一个名为你想要的自定义块 - 但可能是“易碎循环”。在其中,创建此脚本:
通过使用 stop script 我们正在打破当前正在运行的脚本 - 根据Scratch,它是自定义块。
stop script
看到结果! (作为临时块)
broadcast and wait
您还可以使用广播等待方法,与上面非常类似:
虽然我强烈建议你不要使用这种方法,好像任何其他的精灵都有可破坏的循环,你需要重命名每一个,这在很多精灵中使用了很多循环后会很乏味!
(请注意,编辑器的版本442中已修复此错误,因此以下内容不再适用。)
救命!我的项目现在已经落后了! 如 @foi 具有 注意到 ,如果你的代码必须在你可能检查的框架内运行 的 没有屏幕刷新运行 强> 。不幸的是,由于Scratch播放器中的一个错误,这会导致程序在之后基本上破坏 stop this script 块已被激活。你怎么能处理这个? 它遵循您在a中使用没有屏幕刷新自定义块的运行时使用的相同原则 forever 循环 - 循环不会在内部使用屏幕刷新,允许即时动画,无论是否正在使用 涡轮模式 。 这是一个例子 - 图像实际上太长而无法嵌入,所以 在这看到它 代替。
如 @foi 具有 注意到 ,如果你的代码必须在你可能检查的框架内运行 的 没有屏幕刷新运行 强> 。不幸的是,由于Scratch播放器中的一个错误,这会导致程序在之后基本上破坏 stop this script 块已被激活。你怎么能处理这个?
它遵循您在a中使用没有屏幕刷新自定义块的运行时使用的相同原则 forever 循环 - 循环不会在内部使用屏幕刷新,允许即时动画,无论是否正在使用 涡轮模式 。
forever
这是一个例子 - 图像实际上太长而无法嵌入,所以 在这看到它 代替。
您可以在内部或外部创建变量 repeat 并使你的脚本像这样:
repeat
repeat until [[my variable] = [e.g: 1]] your code your code your code your code end of repeat until
对于“重复直到”块,最简单的方法是“或”你的正常情况直到具有中断条件的条件。
通过在循环中添加递增循环计数器变量,您可以使用“重复直到”来复制“重复n次”块的功能
通过使用仅包含中断条件的“重复直到”块,您将获得相当于“永久”块的效果
如果你需要另一个脚本/精灵来触发中断,那么一个公共变量将让你从任何地方打破循环,让一个条件为不同的精灵打破循环。
我发布了一个块的图像,但这是我的第一个回复,该网站不会让我!
祝好运
您可以使其重复x次或使其具有停止的某个点,例如另一个变量。
否则,我不认为有这样的事情。