We use the code of the previous chapter
With if-statements, we can allow pieces of code to only be executed when a condition is met.
You create an if-statement like this:
if condition then -- code end
A condition, or statement, is something that's either true or false.
5 > 9
> means, higher than. So the statement is that 5 is higher than 9, which is false.
Put an if-statement around the code of x increasing.
function love.update(dt) if 5 > 9 then x = x + 100 * dt end end
When you run the game you'll notice that our rectangle isn't moving. This is because the statement is false. If we were to change the statement to
5 < 9 (5 is lower than 9), then the statement is true, and the code inside the if-statement will execute.
With this, we can for example make
x go up to 700, and then make it stop moving, with
x < 700.
function love.update(dt) if x < 700 then x = x + 100 * dt end end
If we want to check if a value is equal to another value, we need to use 2 equal-signs (==).
4 == 7
1 equal-sign is for assigning, 2 equal-signs is for comparing.
x = 10 --Assign 10 to x x == 10 --Compare 10 to x
We can also use
<= to check if values are higher and equal or lower and equal to each other.
10 <= 10 --true, 10 equals to 10 15 >= 4 --true, 15 is higher than 4
A variable can also be
false. This type of variable is what we call a boolean.
Let's make a new variable called
move, with the value
true, and check if
true in our if-statement.
function love.load() x = 100 move = true end function love.update(dt) --Remember, 2 equal signs! if move == true then x = x + 100 * dt end end
true, so our rectangle moves. But
move == true is actually redundant. We're checking if it's true that the value of
true. Simply using
move as a condition is good enough.
if move then x = x + 100 * dt end
If we want to check if
false, we can put a
not in front of it.
if not move then x = x + 100 * dt end
If we want to check if a number is NOT equal to another number, we use a tilde (~).
if 4 ~= 5 then x = x + 100 * dt end
We can also assign
false to a variable with a statement.
move = 6 > 3.
If we check if move is true, and then change move to false inside the if-statement, it's not as if we jump out of the if-statement. All the code below will still be executed.
if move then move = false print("This will still be executed!") x = x + 100 * dt end
Let's make the rectangle move based on if we hold down the right arrowkey. For this we use the function
Notice how the D of Down is uppercase. This is type of casing is what we call camelCasing. We start the first word in lowercase, and then every following word's first character we type in uppercase.
We pass the string "right" as first argument to check if the right arrowkey is down.
if love.keyboard.isDown("right") then x = x + 100 * dt end
So now only when we hold down the right arrowkey does our rectangle move.
We can also use
else to tell our game what to do when the condition is
false. Let's make our rectangle move to the left, when we don't press right.
if love.keyboard.isDown("right") then x = x + 100 * dt else x = x - 100 * dt --We decrease the value of x end
We can also check if another statement is true, after the first is false, with
elseif. Let's make it so that after checking if the right arrowkey is down, and it's not, we'll check if the left arrowkey is down.
if love.keyboard.isDown("right") then x = x + 100 * dt elseif love.keyboard.isDown("left") then x = x - 100 * dt end
Try to make the rectangle move up and down as well.
and we can check if multiple statements are true.
if 5 < 9 and 14 > 7 then print("Both statements are true") end
or, the if-statement will execute if any of the statements is true.
if 20 < 9 or 14 > 7 or 5 == 10 then print("One of these statements is true") end
To be more precice, if-statements check if the statement is NOT
if true then print(1) end -- Not false or nil, executes. if false then print(2) end --False, doesn't execute. if nil then print(3) end --Nil, doesn't execute if 5 then print(4) end --Not false or nil, executes if "hello" then print(5) end --Not false or nil, executes --Output: 1, 4, 5
With if-statements, we can allow pieces of code to only be executed when a condition is met. We can check if a number is high, lower or equal to another number/value. A variable can be true or false. This type of variable is what we call a
boolean. We can use
else to tell our game what to execute when the statement was false, or
elseif to do another check.