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