Removing assets from the stage
Video: Removing assets from the stageThe next step in the development of this game is I need to go ahead and remove the various elements from the stage, because as you can see how this game works, as these lasers hit these tempEnemies, well, the enemies should be disappearing, and so should the lasers. Not only that, the enemies should be disappearing when they go off the stage, and these lasers should also be disappearing as they go off the top. And lastly, even these explosions, even though you don't see them anymore after they blow up, they still exist on the stage.
- Next steps
Viewers: in countries Watching now:
In Flash Professional CS5: Creating a Simple Game for Android Devices, author Paul Trani shows how to translate existing Flash skills from the web to mobile devices while designing a game in Flash and publishing it as an AIR for Android app. The finished application includes collision detection, random enemy creation and movement, shooting capabilities, multiple levels, and even a high score screen. This course also goes beyond game functionality and shows how to use mobile capabilities such as the accelerometer and gestures to control graphics, use the hardware keys to activate menus, and also how to optimize content so it plays well on mobile devices. Also included are instructions for distributing an app through the Android Market. Exercise files are included with the course.
- Designing for mobile platforms
- Creating and optimizing game graphics
- Adding random movement and interactivity
- Moving players based on the accelerometer
- Using gestures
- Detecting collisions
- Implementing audio
- Adding scoring and levels
- Implementing a high score screen
- Publishing an app on both Mac and Windows
- Uploading to the Android Market
Removing assets from the stage
The next step in the development of this game is I need to go ahead and remove the various elements from the stage, because as you can see how this game works, as these lasers hit these tempEnemies, well, the enemies should be disappearing, and so should the lasers. Not only that, the enemies should be disappearing when they go off the stage, and these lasers should also be disappearing as they go off the top. And lastly, even these explosions, even though you don't see them anymore after they blow up, they still exist on the stage.
So we need to remove those. There is just an awful lot of cleanup that we need to do now. I'll go ahead and close that file. And just to review where this file is at, all of these items are actually in arrays. So there is this laser array. There is this enemy array and then there's an explosion array, so I'm basically going to remove elements from these various arrays. So I am going to go ahead and open up the Code Snippets panel right down here, and in the bottom, Remove Elements from Array, that's what I want to add.
So I'll just double-click on it, and it will add it to my Actions panel and let's just start here at the top. And a lot of these are similar, but let's go ahead and take a look. This one says Remove enemy 1 from the enemies array. Well, I already have an enemies array created, so that's fine, but this is what's happening. It's going to go ahead and remove enemy number 1 from that array. So this number gets passed into this function. So idx becomes 1, and in here it says removeChild, so remove from the stage enemies in that array number 1.
That's what that is. I'll just undo that. But remove it from the stage. Not only that, remove it from the array as well. So this again passes in 1, and this second number here just says to remove only that one item and that's it. So I'll undo that. So that's the basic structure of this function. But when and where does this function call go? What is it called. Where does it go in my code? So let's go ahead and take it, and let's cut it, because I actually want to call that function when there is that explosion.
So let's just scroll up, and what I want to do is I want to go ahead and right in here for this moveEnemies function, as I scroll down, I want to go ahead and remove that tempEnemy. When it goes off the stage or if it hits the player, that's when I want to remove that enemy. So, line 210. I'll paste it in there. Hit the Tab key a couple of times. So removeEnemy, that's when I want to call that function right in here, after that explosion.
But I don't want this equal to 1. In fact, what I want to do is I need to reference this for loop. So here is the for loop. So whatever tempEnemy you're on, that's actually referred to as i, so that's what that is. I am just going to copy that, so right in here, I am just going to paste i. So whatever tempEnemy that is, it's actually known as i. I can go ahead and change that comment to that, and that looks more appropriate, removeEnemy(i). I'll go ahead and copy those two lines because I need to remove the enemy, not only when it goes off the bottom of the stage or hits the player, but also when the laser hits it.
So, I'll scroll down. Right in here, there is this Make Explosion as well. Just beneath it, I'll paste in those two lines. There we are, removeEnemy. Well, is it known as i still? Well, let's take a look. The for loop for the enemy, sure enough, is i. I just want you to be aware of that. Make sure that says i, and it will get removed when the laser hits the enemy. So far so good. Let's scroll back down. So we have done the removeEnemy.
Let's take a look at removeLaser. It works the same way, so there's this removeLaser function. It removes whatever number I'm referring to. It removes it from the stage and takes it out of the laser's array. So it works the same way. Well, where is it going to go? Let's first take this and let's cut it and scroll up to where we were a second ago. Test for collisions, right in here. Again, where the laser hits the enemy, right underneath this removeEnemy, I can paste in that removeLaser. Tab that in.
Remove that reference to 1. And for removeLaser, what number of my referencing, or what variable? Let's take a look. It's not i because that refers to the enemy. I need to go ahead and take a look at the laser. So the laser is actually j, so that's what I need is j right here. So I'll just type in j, and again when the laser hits the enemy, go ahead and remove it. Not only that, but when the laser goes off the stage or off the top, I also need to remove it there as well.
So let's scroll up. That's where we make enemies. Let's go a little further up, right here, 134. There is this moveLaser function and right in here, there is this if statement says, you know what, if it's off the top of the screen, then go ahead and do something. In this case, what I wanted to do is I will just paste in this function call, right in there. And again, let's take a look. For that variable i, in this case it is i, I can type in i, go ahead and basically remove that laser when it's off the top of screen.
So that takes care of the laser when it goes off the top as well. So we have taken care of the enemy-- let me scroll back down to the bottom--the enemy as well as the laser we are removing those. Now what about the explosion? The explosion is pretty interesting because you see this explosion and then you don't see it anymore, but it's actually still on the stage. So we just need to remedy that. So we're not going to treat it the same way. So we don't even need to call this function at all. I'll just delete that. I do need this function.
But how I am going to treat it is, as I scroll down here, is I am going to go ahead and check all of the items in this explosions array, all of those various explosions. If at anytime that explosion, if its current frame is greater than or equal to the total frames, so what that means is if the explosion has already played, then go ahead and remove that explosion. So this is just a for loop. That does all of that work, okay.
So loop through everything, see where the current frame right is. If it's basically at the end, then go ahead and remove that item. So I need to take this and I am going to cut it, and I'm actually going to just put it in another function. I am going to put it in the moveLaser function. I'll scroll up. There it is, moveLaser, where we just were, not within this for loop. All I am going to do is just after that closing curly brace, but still leaving one below as well, and I am going to paste in that chunk of code, okay.
So if I scroll up, just keep in mind I'm in moveLaser. It really doesn't matter what function I am in in particular because I just know that this function gets fired off at the frame rate of the movie. So it's constantly checking. It's always checking these various explosions, and as soon as one has already played, it's just going to go ahead and remove it. All right, I'd say we're looking pretty good. Let's scroll back down and just do a little bit of cleanup with this code, because these functions, well, I don't want to leave them at the bottom. In fact, I am going to cut them, and I want to move them into sort of the game area, where I have all my game code.
So I have this Make Explosion function, this testForEnd, and then just right down below testForEnd, that's where I'll just paste in those functions. These are game functions. That's where I want them. All right, let's just go ahead and test this movie now. I'm going to click Play, and as we see those collisions happen, we'll see some explosions, but those elements will be removed, such as the UFO, known as the tempEnemy, the lasers will disappear when they collide, and even as they go off the bottom of the screen, they'll be removed as well.
In fact, if I expand out the size of the stage, you can see that the lasers do disappear once they reach the top. So again, that's just a little bit of cleanup that we've done. The game is much better this way. I'm actually able to destroy these enemies. So the next thing is actually going to be implementing some explosion sounds to this game.
There are currently no FAQs about Flash Professional CS5: Creating a Simple Game for Android Devices.