1
00:00:01,343 --> 00:00:04,535
Let's talk about more complex conditions
you can check with your programs.
2
00:00:04,835 --> 00:00:06,632
To demonstrate, I've set up my canvas
3
00:00:06,632 --> 00:00:09,387
to look kind like an old game
I used to play: Foursquare.
4
00:00:09,387 --> 00:00:11,826
There is four squares
- it's got a good name-,
5
00:00:11,826 --> 00:00:14,827
and you stand in one and bounce
your ball to the other squares.
6
00:00:14,827 --> 00:00:17,283
So right now, I'll draw an ellipse
wherever my mouse is,
7
00:00:17,283 --> 00:00:19,003
so that's like our ball.
8
00:00:19,003 --> 00:00:21,767
What I wanna do is highlight
the square that the ball is in,
9
00:00:21,767 --> 00:00:24,202
by drawing a white rectangle on top of it.
10
00:00:24,202 --> 00:00:26,106
I know I need an if statement to do that,
11
00:00:26,106 --> 00:00:28,234
because I only want
to do it to one at a time,
12
00:00:28,234 --> 00:00:30,400
only when I am over that rectangle.
13
00:00:30,400 --> 00:00:34,002
Okay, so let's start
by drawing that rectangle.
14
00:00:35,036 --> 00:00:40,437
So I'll just copy the rect from there,
but give it a different fill, a white one.
15
00:00:41,368 --> 00:00:44,495
Good. Now let's wrap it with an if.
16
00:00:45,633 --> 00:00:49,956
You see it auto-completes the curly braces
for me, so I got to move it inside.
17
00:00:50,601 --> 00:00:53,764
OK. So when do I want
to show that rectangle?
18
00:00:54,236 --> 00:01:00,985
Well, I know I wanna do it when mouse
mouseX < 200.
19
00:01:02,968 --> 00:01:07,465
So that works, but then if I go
down here, it is still showing.
20
00:01:07,465 --> 00:01:09,904
So I also need to check mouseY.
21
00:01:09,904 --> 00:01:12,719
Well, how do I check both of those things?
22
00:01:12,719 --> 00:01:14,829
That’s why we have the "and" operator.
23
00:01:14,829 --> 00:01:18,070
So the and operator we use
when we want to check multiple conditions.
24
00:01:18,070 --> 00:01:23,350
So we just write &&
and then we write our next condition,
25
00:01:23,350 --> 00:01:26,324
so mouseY < 200.
26
00:01:26,778 --> 00:01:30,807
So it doesn't light over here
anymore, and it does here! Yay.
27
00:01:30,807 --> 00:01:35,807
Let's do the next square,
just to prove this works.
28
00:01:35,807 --> 00:01:38,936
Alright, so we just have
to change some stuff.
29
00:01:38,936 --> 00:01:40,768
Well take this rectangle instead,
30
00:01:40,768 --> 00:01:44,432
and we obviously need
to change the conditions
31
00:01:44,432 --> 00:01:45,819
so it's not so lighting up.
32
00:01:45,819 --> 00:01:50,700
So this time, mouseX needs
to be greater than 200,
33
00:01:50,700 --> 00:01:53,563
and mouseY still less than 200.
34
00:01:53,563 --> 00:01:55,069
Beautiful, look at that!
35
00:01:55,069 --> 00:01:59,696
Alright, now, in foursquare,
whenever the ball hits the edges,
36
00:01:59,696 --> 00:02:02,505
you know, these lines
in the middle and corners,
37
00:02:02,505 --> 00:02:04,501
we always yell "EdgeBall".
38
00:02:04,501 --> 00:02:10,205
So I wanna do that here too.
Let's start by writing it EDGE BALLL!!!!.
39
00:02:10,205 --> 00:02:15,958
And let's write in the middle
and make it red, 'cuz is really important.
40
00:02:15,958 --> 00:02:19,367
So I only want it to happen
if I'm on the edges.
41
00:02:20,128 --> 00:02:22,572
So we are gonna add our if,
42
00:02:22,572 --> 00:02:24,528
and move this code inside of it.
43
00:02:25,608 --> 00:02:28,759
When I want it to happen?
44
00:02:28,759 --> 00:02:30,197
Well, there is edges in the middle,
45
00:02:30,197 --> 00:02:36,040
so the middle is when mouseX equals 200.
46
00:02:37,327 --> 00:02:40,904
Alright let's see. Do I get Edge Ball?
47
00:02:40,904 --> 00:02:44,636
There we go! EDGE BALL!!!
48
00:02:44,636 --> 00:02:49,422
OK. Hmm... So that works
in this middle line here,
49
00:02:49,422 --> 00:02:52,295
but I also want it
to work on this line here.
50
00:02:52,295 --> 00:02:58,024
In that case, I want mouseY equals 200,
51
00:02:58,527 --> 00:03:01,527
because that’s what that middle line is.
52
00:03:02,257 --> 00:03:07,760
Let's see, so that's not working.
Nothing is working.
53
00:03:08,323 --> 00:03:10,731
Oh, one thing works, just the very center.
54
00:03:10,731 --> 00:03:12,435
Well, that’s because I used an and,
55
00:03:12,435 --> 00:03:16,269
so its only gonna do it
if both of these are true,
56
00:03:16,269 --> 00:03:18,389
and it will only happen in the center.
57
00:03:18,389 --> 00:03:22,031
So what I actually wanna say is,
either one of these are true.
58
00:03:22,031 --> 00:03:24,701
So we use the or operator.
59
00:03:24,701 --> 00:03:27,323
So the or operator looks like this: ||
60
00:03:27,323 --> 00:03:31,529
We call those pipe symbols,
and you probably never used them before.
61
00:03:31,529 --> 00:03:35,764
You have to look it on your keyboard,
it is usually on your top-right.
62
00:03:35,764 --> 00:03:39,467
Hopefully, you actually
have it on your keyboard.
63
00:03:39,467 --> 00:03:42,269
Alright? Cool, so now
let's see if it works.
64
00:03:42,269 --> 00:03:46,033
Alright, so works there, works there,
and then works there. Beautiful.
65
00:03:46,033 --> 00:03:49,120
We can keep adding more conditions here,
66
00:03:49,120 --> 00:03:52,704
so with both and and or
you can have as many of these as you want
67
00:03:52,704 --> 00:03:54,598
If you need to check
60 different conditions
68
00:03:54,598 --> 00:03:56,361
you can totally do that, right?
69
00:03:56,361 --> 00:03:58,331
Because we haven’t take
care of our edges yet,
70
00:03:58,331 --> 00:04:04,436
so let's say if mouseX is less than 3,
71
00:04:05,233 --> 00:04:07,965
so that should be--
there we go, that little edge there.
72
00:04:07,965 --> 00:04:09,296
Very good.
73
00:04:09,296 --> 00:04:14,532
Or (mouseX>397)
74
00:04:15,133 --> 00:04:17,596
There we go! Beautiful!
75
00:04:17,596 --> 00:04:20,534
So we keep doing it for all the edges.
76
00:04:20,534 --> 00:04:24,539
So.. yeah! There is and (&&) and or (||)
and now you can see
77
00:04:24,539 --> 00:04:27,566
how you can build up much more
complex conditions in your programs.
78
00:04:27,566 --> 00:04:30,469
And that's good,
because the world is a complex place.