One reason for having a scripting language is to be able to
control the flow of a movie. Controlling something requires making decisions.
This is what the if statement does. The if statement uses the following format:
if (condition)
statement_to_perform_if_condition_is_true
else
statement_to_perform_if_condition_is_false
The else part of the if statement is optional. If you wish
to have more than one statement after the if or the else, you should place the
block of statements into a pair of curly braces {}. Curly braces indicate a
block of code so can be used anywhere that a single statement is expected in
order to run a block of statements. Here
is an example.
if (x == 1) {
console.log("x
is assigned a value of 1");
y = 23;
}
The condition is simply a mathematical condition, but two
equal signs are used together to indicate equals while a != combination is used
for not equal. The greater than and less than symbols (<, <=, >,
>=) can also be used. Be careful not to use a single equals in a condition
as this will assign that value to the variable which can lead to hard to track
bugs. Many languages, such as Pascal, use equals for equality and use something
else (:= in Pascal) for assignment.
Conditions can be combined to form more complex conditions.
This is done by placing each condition in it's own set of brackets and then
placing an and (&&) or an or (||) symbol between them.
The and (&&) operation means that both conditions
must be true if the condition is to be true. If either or both conditions are
false then the condition is false. For example, to make sure a player is in the
bounds of a 100x100 square they must be within all four sides. We may have the
following code to check this:
if (
(playerX >=
0) &&
(playerX <
100) &&
(playerY >=
0) &&
(playerY <
100)
)
console.log("Player
is within the bounds");
Note that the range for the square is 0 through 99
inclusive. This is a programmer thing that makes a lot of sense once you start
doing a lot of programming but can be confusing for non-programmers. This makes
even more sense when you do machine language programming. If you are interested
in machine language, you can learn about it from my HomeBrewGameJam blog where
I am writing a 6502 emulator for use in an Atari 2600 emulator and later a NES
emulator.
The or (||) operation just requires that one of the
conditions is true, though both conditions being true is also acceptable. For
example, to check if something is not within the bounds of a square we can
check to see if any of the bounds have been violated with the following code:
if (
(playerX < 0)
||
(playerX >=
100) ||
(playerY < 0)
||
(playerY >=
100)
)
console.log("Player
is outside of the bounds");
It is also possible to assign a condition result to a
Boolean variable which can be useful if you have to check the results of some
condition multiple times. To demonstrate this, the inside box check could be
written as follows:
if (
(playerX >=
0) &&
(playerX <
100) &&
(playerY >=
0) &&
(playerY <
100)
)
console.log("Player
is within the bounds");
if (inBox)
console.log("Player
is within the bounds");