计算机科学或游戏开发中有许多事物是会重复的。例如,一个应用程序可能每几秒更新一次动态内容,或者一个游戏可能会在玩家每天登录时奖励他们一个奖品。为了实现这种行为,程序员通常使用循环。
在计算机科学中,循环是一种重复一组指令的编码模式,通常直到满足特定条件为止。为了练习这个概念,你将编写一个无限改变颜色的部件。后面的课程将展示如何停止循环。
设置部件和脚本
使用任何Roblox项目进行此练习。完成后,这个部件可以用作装饰环境的一种方式。
创建一个具有描述性名称的新部件。此课程使用LoopingPart。
在ServerScriptService中,添加一个名为LoopingScript的新脚本。
在脚本中,删除Hello World并写一个注释说明此脚本的目的。
-- 每几秒改变LoopingPart的颜色
使用变量存储部件
变量除了可以容纳字符串外,还可以保存对对象的引用。例如,当脚本知道一个部件的引用时,脚本可以改变它。
与其一遍又一遍地键入workspace.NameOfYourPart,不如将整行存储在一个局部变量中。局部变量是通过输入local及变量名称来创建的。
例如:local nameOfVariable。
在注释下方,创建一个局部变量,输入local loopingPart。
-- 每几秒改变LoopingPart的颜色local loopingPart在同一行将变量设置为循环部件,键入= workspace.LoopingPart。请记住,=操作符将变量的值设置为右侧的内容。
-- 每几秒改变LoopingPart的颜色local loopingPart = workspace.LoopingPart
while循环
在为颜色改变的部件创建while循环之前,解释一下它的语法是很有必要的。while循环有三个组成部分:
- while关键字。
- 条件,始终在关键字之后。
- 指令,在do和end关键字之间。
在循环中,条件可以是各种逻辑语句。一些例子可能是两个数字是否相等。如果条件为真,循环将运行。
请注意下面的示例,条件是真,这意味着这个循环将永远运行。在后面的课程中,你将编写特定的条件来停止循环。
while true doprint("这个循环正在运行")end
编写while循环
接下来,你将为颜色改变的部件设置while循环。
在下一行输入while true do。然后,按Enter自动补全并添加单词end。
-- 每几秒改变loopingPart的颜色local loopingPart = workspace.LoopingPart-- 循环代码while true doend
在循环中添加代码
创建while循环后,可以添加指令以随着时间的推移改变部件的颜色。在循环内部,为每种颜色添加一行代码。每种颜色将使用RGB值,这是一种在计算机科学中以数字方式存储颜色的方法。
在while true do和end之间,设置部件的Color属性为Color3.fromRGB()。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()end可以使用Studio中的颜色选择器设置颜色。为此,在fromRGB旁边的()内左键单击。然后,单击颜色轮图标。一旦选定所需颜色,按确定自动将颜色值添加到代码中。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
让脚本等待
如果你现在添加第二行改变颜色的代码,砖块的颜色变化将如此之快,以至于你可能根本无法看到第一个颜色。为了让脚本在运行下一行代码之前等待,使用task.wait()函数。
在改变砖块颜色的下一行,键入task.wait(3)。放在()中的任何数字是脚本将等待的秒数。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)end在等待函数下,重复添加新颜色的相同过程。最后再加一个等待函数。
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end测试代码,看看颜色是否会变化。
故障排除注意事项
此时,如果颜色变化的部件未按预期工作,请尝试以下其中一种。
问题:颜色被跳过
- 确保在每次颜色变化之间都有一个等待函数,尤其是在最后一行。
- 检查所有颜色变化和等待代码是否位于while true do和end之间。
问题:部件仍为灰色或未按预期变化颜色
- 确保所有RGB值的数字在0到255之间,可以是整数或小数,且用逗号分隔。
- 等待函数的()中的数字应大于1。等待时间过短,可能导致你看不到该颜色。
完整的颜色循环部件脚本
-- 创建一个变量来存储部件local loopingPart = workspace.LoopingPart-- 循环代码while true do-- 改变loopingPart的颜色loopingPart.Color = Color3.fromRGB(82, 227, 255)-- 等待3秒后执行下一条指令task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
总结
循环是大多数计算机语言中的常见元素。它们用于重复指令,有时直至满足特定条件。在本文中,使用while循环无休止地重复指令。要创建一个无限循环的while循环,请使用下面的语法,并确保在do和end关键字之间包含指令。
while true do-- 指令end