Start learning with our library of video tutorials taught by experts. Get started

Building Flash Games with Starling

Creating the AlienManager class


From:

Building Flash Games with Starling

with Lee Brimelow

Video: Creating the AlienManager class

So now that we've created our Alien class we're going to create our AlienManager class. So I'm going to go to my manager's package, right-click, create a new ActionScript class and call it AlienManager and I'm going to start with the code from the BulletManager class, because there's going to be a lot of similarities. So I'm just going to copy all of that class to the clipboard and just overwrite the AlienManager class here. Now obviously I need to go through and change the class name to AlienManager.
Expand all | Collapse all
  1. 2m 9s
    1. Welcome
      45s
    2. Using the exercise files
      36s
    3. What you should know
      48s
  2. 10m 21s
    1. Checking out the finished product
      1m 10s
    2. Downloading the Starling framework
      4m 13s
    3. Installing Flash Builder
      1m 44s
    4. Installing additional tools
      1m 30s
    5. Overview of the Starling framework
      1m 44s
  3. 13m 0s
    1. Creating the Flash Builder project
      2m 40s
    2. Setting up your Starling scene
      6m 7s
    3. Creating the main game class
      4m 13s
  4. 13m 52s
    1. Creating the IState interface
      2m 14s
    2. Creating the three game states
      3m 50s
    3. Building the state machine
      7m 48s
  5. 22m 14s
    1. Creating a static assets class
      2m 3s
    2. Adding images and creating textures
      3m 24s
    3. Creating sprite sheets with TexturePacker
      6m 26s
    4. Creating the main texture atlas
      3m 29s
    5. Creating and importing bitmap fonts
      6m 52s
  6. 14m 16s
    1. Creating the Background class
      5m 55s
    2. Adding the logo
      2m 58s
    3. Adding the play button
      3m 4s
    4. Implementing the destroy method
      2m 19s
  7. 56m 47s
    1. Adding the background
      1m 3s
    2. Creating the Hero class
      6m 14s
    3. Creating the Bullet class
      1m 44s
    4. Creating the BulletManager class
      4m 23s
    5. Using the StarlingPool class
      9m 24s
    6. Firing bullets with the mouse
      7m 24s
    7. Creating the Alien movie clip
      1m 58s
    8. Creating the AlienManager class
      8m 12s
    9. Overview of collision-detection options
      3m 10s
    10. Creating the CollisionManager class
      10m 51s
    11. Implementing the destroy method
      2m 24s
  8. 7m 59s
    1. Adding the background
      1m 10s
    2. Creating the "Game Over" text
      2m 43s
    3. Adding the Try Again button
      4m 6s
  9. 20m 5s
    1. Exploring particle-creation tools
      4m 52s
    2. Adding the smoke texture
      5m 3s
    3. Creating the Explosion class
      2m 6s
    4. Creating the ExplosionManager class
      8m 4s
  10. 11m 5s
    1. Creating sound effects with cfxr
      3m 5s
    2. Adding the sound effects
      3m 42s
    3. Creating the Score class
      4m 18s
  11. 6m 1s
    1. Starling optimization tips
      4m 8s
    2. Helpful Starling resources
      1m 53s

Watch this entire course now—plus get access to every course in the library. Each course includes high-quality videos taught by expert instructors.

Become a member
Please wait...
Building Flash Games with Starling
2h 57m Intermediate Jul 05, 2012

Viewers: in countries Watching now:

Join Lee Brimelow in this project-style course that teaches how to build a Flash-based game with Flash Builder 4.6, Flash Player 11, and the Starling framework. Starling, a pure ActionScript 3.0 library for advanced graphics, extends Flash Player 11's support for the modern GPU (graphic processing unit) to enable visual presentations and games in the browser or as a mobile app.

Starting with installation and configuration of Starling and creation of a Flash Builder project, the course shows how to prepare and import graphical assets, create MovieClip classes from sprite sheets, manage various gaming objects, detect collisions, and add both particle and sound effects. The finished game can be deployed to any browser or mobile device that integrates Flash Player 11, which was released in September 2011.

Topics include:
  • Downloading and installing Starling and Flash Builder
  • Creating the project
  • Creating the main game class, static assets class, and other classes
  • Building the state machine
  • Creating a static assets class
  • Adding images
  • Creating sprite sheets with Texture Packer
  • Creating and importing bitmap fonts
  • Detecting collisions
  • Adding particle effects
  • Adding sound effects
Subjects:
Developer Web Games
Software:
ActionScript Flash Builder Flash Player Starling
Author:
Lee Brimelow

Creating the AlienManager class

So now that we've created our Alien class we're going to create our AlienManager class. So I'm going to go to my manager's package, right-click, create a new ActionScript class and call it AlienManager and I'm going to start with the code from the BulletManager class, because there's going to be a lot of similarities. So I'm just going to copy all of that class to the clipboard and just overwrite the AlienManager class here. Now obviously I need to go through and change the class name to AlienManager.

We're going to change our Array here from bullets to aliens. So I'm just going to refactor and rename that. And we're going to change our pool, because obviously we don't want to create bullets for our pool, we want to create alien objects. So we're going to make sure we import that Alien class and we're not going to need a hundred of them. At most we're going to need 20 aliens in any one time, and again, that's a number you can arrive at just by trial and error.

So we have our AlienManager. I'm going to remove the contents here of this for loop and remove this code right here. We're going to change this local variable from b to a, and then this is obviously going to be type Alien. We're going to change our fire method to spawn, because we're going to be spawning new aliens here, and I'll just remove the contents of that function. Our destroyedBullet class is actually going to be called destroyAlien and this is obviously going to be a, and the class name is going to be Alien.

Well, that's already aliens, and we can remove the contents of that for loop. So now we can start adding in our code here. Now I'm going to start with the spawn method and that's going to be called anytime we want a new alien to be spawned. What I'm going to first do is to get an alien out of our pool. So I'm going to create a local reference variable here called a, it's going to be of type Alien is equal to pool.getSprite() and we'll cast it as Alien.

Now the difference between a Sprite and a MovieClip is this movie clip needs to be animated on every frame and the way in which we do that in Starling is to add it to an object called the juggler and the juggler makes sure that all of the objects it contains are updated. We get to the main juggler instance, because it's a static property on the Starling class. So if we say Starling, and again make sure that that is imported, .juggler.add. Then we're going to add in that (a) alien here, and that's going to make sure that it's actually animated, because if we don't do that, it's just going to be stuck on the first frame.

The next thing I want to do is to push that into the aliens array. So I'm going to aliens.push(a); and now I need to set its X and Y position. First set its Y position. So we want it to be off the screen at the top. So I'm going to set it to negative 50. Now I'm going to set its X position and here we want a random X position, because obviously we don't want them all falling in the same spot. So I'm going to say Math.random() * 700 + 50; and that will give us a nice distribution across the X axis.

Now lastly I need to add this to the display list of our play state. So we are going to say play.addChild(a). So again this function will be called anytime we want to spawn a new alien. So then that brings up the question when do we want to spawn new aliens? Well, we want to do it kind of randomly. So in our update method up here I'm going to create an if statement and I'm going to create a random number. So I'm going to say Math.random(). If(Math.random() is less than 0.2, then we're going to call the spawn method.

So now remember Math.random returns a random number between 0 and 1. So by adjusting this number here, we can make it more or less likely that a new alien is going to be spawned. Again, you can just use trial and error and then also this value can change throughout your game to make the game more difficult. So now what I want to do is to go through and update all of the aliens that are currently in the game. So I'm going to use that local variable here and I'm going to get the item out of the aliens array, and I'm going to increment its Y position by 8 pixels on every frame.

Again, you can adjust that number to adjust the speed in which the aliens travel. Now I'm going to test if the alien is actually off of the screen. So I am going to say if(a.y > 800), then I need to actually destroy this alien. So I'm going to say destroyAlien and pass in (a); and now we can actually look how to destroyAlien method, and again, this can be called from within this function, but also outside of this function when we get to collision detection.

The first thing we're going to do is to loop through and make sure we have the correct alien. So we're going to say if(a is equal to aliens i) then we are going to dispose of this and we're going to do that first by splicing it out of the array, aliens.splice. I'm going to start with i and go to 1. Now we need to remove it from the juggler. So starling.juggler.remove(a); because again, we don't want this thing to be constantly updated if it's not even in the game anymore.

Then we want to remove it from the display list. So we're going to a.removeFromParent and we're going to dispose it and then lastly we want to return this to our pools so that it can be re-used later. So pool.returnSprite(a); and we're going to get to the destroy method for our Manager classes later in this chapter. So I'm going to save this now, and I'm going to go back to my play state, because now I need to create an instance of this AlienManager. So I'll do it right under my BulletManager.

I'm going to call it alienManager is equal to new AlienManager and remember we have to pass in (this) to it. I'll create that as an instance variable. And now I need to go to my update method and here I need to update the alienManager on every frame. So alienManager.update(); So I'm going to go ahead and run this. So here is our menu. I'm going to click Play Game.

And now you can see, we have actually exhausted the pool. So if I click on here, you'll see that custom error has been thrown and then this is where we need to adjust that value; the value which determines how often something is spawned. So we need to make it a lot less than this. So let's say if it's less than 0.05 and now we can try this. This number is of course going to be trial and error, because there are way too many aliens being spawned there. So that's a decent number right there, but again, this can be adjustable.

This could be a value that's actually changed over time once the game becomes more difficult. So definitely play around with those values to create different effects. So that's the basics of our AlienManager class. Now again, we're going to filling in the destroy methods for the AlienManager and the BullentManager later on. But in the next movie we're going to look at collision detection, because obviously it's no good firing bullets if it doesn't actually kill anything.

There are currently no FAQs about Building Flash Games with Starling.

Share a link to this course
Please wait... Please wait...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.
Upgrade now


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Upgrade now

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Building Flash Games with Starling.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Welcome to the redesigned course page.

We’ve moved some things around, and now you can



Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked