Functions perform specific tasks. Some functions are already predefined, and some functions you create yourself. The idea behind the functions is the same.
Let's take a look at a simple function.
function myfunction() -- what this function does x=2+2 print(x) end myfunction() -- call the function
Everything between function and end simply describes what your function will do. Here, you are
- Allocating a value of 2+2 to x
- Printing x
It's important to note that your function won't run, i.e., you won't see the value of "4" appear on your screen unless you specifically call it. That is what the last line is, namely:
If you delete this line, nothing will get printed to your screen.
Creating new bricks
You can make a function do all kinds of things. For example, the following function will create a new brick:
function newbrick() local p = Instance.new("Part") p.Parent = game.Workspace p.Name = "Brick" p.Anchored = true end newbrick()
Here, the function (called "newbrick()") is creating a new Instance of a brick. That brick will be in the Workspace. We are inserting a specific object, namely a Part, and naming it "Brick". We want to Anchor it so the brick won't fall down.
Lastly, we call the function so that the function will execute.
Functions don't have to be called by writing out a command. They can be called by a human action, such as clicking a mouse button.
- Insert > Object > Part
- Anchor that newly inserted brick.
- Click that brick.
- Insert > Object > ClickDetector. This will allow the brick to detect when it is being 'clicked'.
- Insert > Object > Script.
- Double-click that script file, and insert the following:
function clickabrick() print("Hi mom!") end script.Parent.ClickDetector.MouseClick:connect(clickabrick)
This function, called "clickabrick()", has to be told what to do. The function will print "Hi mom!", but only if the function is called, namely, by clicking that specific brick.
The last line is more complex now, but it has the same purpose as before -- calling the function. On the left of the colon (:), you are describing the relation of where the triggering action (i.e., a MouseClick) is to the function: