本帖最后由 麦天天天天天 于 2018-5-9 10:34 编辑
点火! 首先,我们需要定义一个函数来点燃一个Part。我们先这样定义这个函数: - function lightOnFire()
- print("Lighting on fire!")
- end
复制代码定义函数有几个很重要的内容。首先,我们必须输入特殊的关键词function来开始代码行。下一个单词是我们函数的名称。变量的命名要遵照命名规则(不能有空格,不能以数字开头等)。接下来,我们写一个括号。然后我们添加我们想要在调用该函数时运行的代码。在上述情况下,我们打印一段文字“Lighting on fire!”,它将调用该函数时运行。在我们输入完所有我们想要运行的代码后,以关键字end结束。 我们的函数还没完全写好,但我们可以现在先调用它来测试一下。也许你已经注意到了,当你现在运行游戏的时候,没有发生任何事情——我们想要打印的文字没有出现在Output栏中。那是因为我们虽然已经定义了函数,但却没有调用它。因此,我们要像调用其他函数那样调用这个函数:以函数名+括号的形式来调用。 - function lightOnFire()
- print("Lighting on fire!")
- end
-
- lightOnFire()
复制代码现在,如果我们运行游戏,你会在Output栏中看到“Lighting on Fire!”这句话。
# 在定义函数的时候,你必须确保你定义函数的代码在调用函数代码的前面。刚才的代码之所以起了作用,是因为我们先定义了函数,然后调用了它。如果我们写成下面的样子: - lightOnFire()
-
- function lightOnFire()
- print("Lighting on fire!")
- end
复制代码这段代码将不会起任何作用。我们在第一行就调用了函数lightOnFire(),但却还没定义这个函数是做什么的,因此脚本会报错。
我们继续完善函数。现在它只是打印了“Lighting on Fire!”这句话,而我们希望通过调用这个函数来实现点燃特定的Part。因此接下来我们需要让这个函数告诉我们具体点燃了哪个Part。因此我们需要通过向函数传递参数(parameter)来完成这个操作。在定义函数的括号之间,我们这样写: - function lightOnFire(part)
- print("Going to light this part on fire:")
- print(part.Name)
- end
复制代码上述代码中括号里的单词Part是这个函数的参数。
现在让我们添加一把火。最简单的方法是在代码中创建一个新的实例Fire,并将其传入父Part。就像我们使用Instance.new(“Part”)创建一个新的Part一样,我们也可以使用Instance.new(“Fire”)来创建火焰。我们必须确保将Fire存储在变量中,以便我们可以设置其父属性。 - function lightOnFire(part)
- print("Going to light this part on fire:")
- print(part.Name)
-
- fire = Instance.new("Fire")
- fire.Parent = part
- end
复制代码我们需要做的最后一件事情就是在当有Part触碰到我们在一开始创建的FirePart时调用这个函数。要做到这一步,我们要使用一个叫Event的东西:事件是用来在发生某件事情的时候去调用谋改革函数。比如:当两个物体互相碰撞时;当一个玩家加入游戏,而另一个玩家按下按钮时;当有事件发生时,我们可以通过很多地方来调用自定义函数。现在,我们将使用一个名叫Touched的时间,将它与我们的Parts相关联。 - function lightOnFire(part)
- print("Going to light this part on fire:")
- print(part.Name)
-
- fire = Instance.new("Fire")
- fire.Parent = part
- end
-
- firePart = game.Workspace.FirePart
- firePart.Touched:connect(lightOnFire)
复制代码让我们来测试一下我们的游戏!点击Play,然后操作角色穿过FirePart。这时你会发现,我们的角色的腿一碰到FirePart就会着火!
|