 So following on from question four, we'll have a look at question five, which is an extension from our question two program. So hopefully you saved that one. So we've practiced falling down, we've practiced moving a green rectangle or a big cross down the screen, which will also help you with your assignment. But now we want to improve that so that whenever we click a space on the screen, then the shape will start there and start falling from that position. And again, just like what we talked about in question four and five, we want to be wary of whether we use a conditional or a mouse pressed function because we know now that the functionality is different. So we need to keep an eye out on that. So I have my program from the second question. So it's just a simple green rectangle or a square falling down. I think some classes I talked about this here, some classes I didn't. So I'll just explain that as well. So we've got our increment here. So every time draw runs, the Y position variable up here is incremented by one. So we say Y position is now equal to itself plus one. So every time it will increase, but there are some shorthand ways of writing this which makes your code a little simpler, a little neater. So whenever you want to plus one to a variable, instead of this, you can just write plus plus. So Y pos plus plus just adds one to that variable. Say if you wanted to do Y position is equal to Y position minus one. Instead of writing that, you can go minus minus which is super handy. Another thing that you can do, say if it's Y position is equal to Y position plus five. So you want to plus a number other than one. There is a way to do that instead of plus plus, it's plus equals five. And that's the same with minus. It's the same with multiplication, with division. So there's lots of different ways to increment or do the opposite with your code. And it's good practice to start using things like these because that will come in handy when we're writing for loops. So yeah, so we'll just start from here. So this was our base code from question two. So now we want our shape to appear every time we touch the screen. So we look here and if I click over here, green shape should stop falling there and it should reappear up here. So that means that we want our mouse pressed function. And if you watched the question for video, then we know that we want the mouse pressed function and not the mouse press conditional because otherwise it will drag. And what do we want to do every time we press the mouse? What we want to do is remove the previous rectangle from the screen and we can do that by putting a background over the top. So that's the first thing. And we want to have our rectangle appear where mouse X is. So that means that with the Y position, we want that Y position variable to be updated to the current mouse Y position. But we also want our X coordinate to change as well. So it's not always going to be width divided by two. We want that to update if we click on the screens. That means that we want to introduce a new variable. So I'm going to introduce a new variable up here called X pose, X position. And it's initially going to be width divided by two. So update this one here as well. And so every time I press the mouse, it should update the X and Y position of that rectangle. So when I press play here, we can test this out. Oh, so I've made a mistake here. What have I done? Ah, okay. That was a silly mistake, but it's a good mistake to point out to everyone because you might find this in your assignment as well. So in the conversation between processing in the compiler and things like that, we know that, or so far we know that the first thing we do is set up is run and then drawer is run and it loops around. But before all of that, our global variables are initialized. So these two are global variables. So what's happening is this one is initialized, then this one is initialized, but at this point in time, setup hasn't run and the default size of our screen, if we don't say or specify the size of our screen, the default size is 100 by 100. And because this is run before setup, at this stage, processing thinks that our width is 100 because we haven't run setup yet, which says that size is 400, 400. So what I'm going to do is I'm going to declare my variable up here so that it's global and it's accessible everywhere, but then I'm gonna update its value inside setup once I've said what the screen size is. So I'm gonna go down to the bottom of setup and I'm gonna say my exposition should now be width divided by two, because at this point in my code, the width has been set to 400, okay? So that should fix that bug, yep. And now when I click, beautiful, it follows there and that's exactly the effect that we want. We'll just make that a bit bigger. And yeah, that's our end code.