注册
登录
scratch
易碎循环?
返回
易碎循环?
作者:
只怕再见是故人
发布时间:
2024-04-18 10:26:11 (1天前)
您如何在Scratch中创建一个易碎的循环?我使用的是Scratch 2.0,找不到从循环本身内部使循环易碎的任何好方法。
收藏
举报
2 条回复
1#
回复此人
春风助手
|
2020-08-21 10-09
免责声明: 没有完美的方法可以做到这一点。如果您可以忍受这个真实的事实,请继续。 您可以通过几种不同的方式来做到这一点。 用 repeat until 第一个也是最简单的一个是: 暂存区http://scratchblocks.github.io/#repeat%20until%20%3Ccondtion%20%3A%3A%20grey%3E%0A%20%20...%0Aend 但这从技术上讲不是脚本的一部分-只是重复执行直到某些值返回true。 带自定义块(stop this script) 为了在脚本中执行此操作,您需要使用带有自定义块的小技巧。 创建一个自定义块,命名为任意值-但可能遵循“易碎循环”的思路。在其中创建以下脚本: 暂存区http://scratchblocks.github.io/#forever%0A%09...%0A%09if%20%3Ccondition%20%3A%3A%20grey%3E%20then%0A%09%09stop%20%5Bthis%20script%20v%5D%0A%09end%0Aend%0A 通过使用,stop script我们突破了当前正在运行的脚本-根据Scratch的说法,它是自定义块。 看到结果!(作为暂存器) 用 broadcast and wait 您还可以使用与上面非常类似的广播等待方法: 暂存区http://scratchblocks.github.io/#...%0Abroadcast%20%5Bbreakable%20loop%20v%5D%20and%20wait%0A...%0A%0Awhen%20I%20receive%20%5Bbreakable%20loop%20v%5D%0Aforever%0A%09...%0A%09%09if%20%3Ccondition%20%3A%3A%20grey%3E%20then%0A%09%09%09stop%20%5Bthis%20script%20v%5D%0A%09%09end%0Aend%0A 尽管我强烈建议您不要使用此方法,但是就像其他任何sprite都有易碎的循环一样,您也需要重命名每个sprite,这在许多sprite中使用了很多循环之后可能会很乏味! (请注意,此错误已在编辑器的442版中修复,因此以下内容不再适用。) 救命!我的项目现在滞后了! 正如@foi所注意到的,如果您的代码必须在框架内运行,则可能选中了不刷新屏幕的运行。不幸的是,由于Scratch播放器中的一个错误,这导致程序stop this script在激活该块后实际上就中断了。你怎么处理呢? 它遵循与forever在循环内使用无屏幕刷新自定义块的运行时所使用的相同原理-循环在内部使用时不使用屏幕刷新,无论是否正在使用Turbo模式,循环都允许使用即时动画。 这是一个示例-图像实际上太长了,无法嵌入,因此请在此处查看。https://gist.github.com/towerofnix/76adedf3a23c5542f4a451b5a5d7b851
编辑
登录
后才能参与评论