New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

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

Flash Professional CS5: Creating a Simple Game for Android Devices
Illustration by Don Barnett

Detecting collisions


From:

Flash Professional CS5: Creating a Simple Game for Android Devices

with Paul Trani

Video: Detecting collisions

Essential to almost any game is going to be collision detection, so determining when items hit each other or if they go off the screen--some sort of detection to see where items are at and then giving a result there. In this case, I need to determine when these UFOs hit the bottom, when they hit my player, and then also when my lasers hit the UFOs, otherwise known as tempEnemy. So those are the different sort of collision detections that I need to do.
Expand all | Collapse all
  1. 1m 48s
    1. Welcome
      1m 0s
    2. Using the exercise files
      48s
  2. 7m 16s
    1. Understanding the user
      4m 2s
    2. Flash content on Android devices
      3m 14s
  3. 17m 28s
    1. Reviewing the game
      1m 50s
    2. Creating a file in Device Central
      5m 39s
    3. Reviewing the game structure
      8m 23s
    4. Adding code snippets
      1m 36s
  4. 36m 13s
    1. Animating the intro screen
      8m 13s
    2. Moving the player
      8m 13s
    3. Adding enemies
      6m 49s
    4. Adding movement
      4m 16s
    5. Adding chance and randomness
      8m 42s
  5. 34m 30s
    1. Adding lasers
      8m 14s
    2. Detecting collisions
      7m 57s
    3. Adding explosions
      6m 26s
    4. Removing assets from the stage
      8m 50s
    5. Adding audio
      3m 3s
  6. 33m 12s
    1. Adding scoring and levels
      7m 41s
    2. Subtracting lives and ending the game
      4m 26s
    3. Creating a results screen
      5m 8s
    4. Displaying the score
      6m 57s
    5. Saving and loading game results
      9m 0s
  7. 17m 14s
    1. Detecting movement with the Accelerometer
      6m 39s
    2. Using the swipe gesture
      4m 42s
    3. Using hardware keys
      5m 53s
  8. 23m 18s
    1. Handling exits and idle mode
      3m 31s
    2. Handling activation and deactivation
      6m 14s
    3. Optimizing graphics
      7m 14s
    4. Optimizing ActionScript
      6m 19s
  9. 34m 41s
    1. Creating the application files
      8m 23s
    2. Creating the app (Mac)
      5m 5s
    3. Creating the app (PC)
      7m 19s
    4. Publishing to an Android device (Mac)
      7m 7s
    5. Publishing to an Android device (PC)
      6m 47s
  10. 8m 56s
    1. Uploading to the Android market
      7m 7s
    2. Downloading from the Android market
      1m 49s
  11. 1m 22s
    1. Next steps
      1m 22s

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 ...
Flash Professional CS5: Creating a Simple Game for Android Devices
3h 35m Intermediate Feb 15, 2011

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.

Topics include:
  • 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
Subjects:
Developer Web Games Projects
Software:
Device Central Flash Professional Android
Author:
Paul Trani

Detecting collisions

Essential to almost any game is going to be collision detection, so determining when items hit each other or if they go off the screen--some sort of detection to see where items are at and then giving a result there. In this case, I need to determine when these UFOs hit the bottom, when they hit my player, and then also when my lasers hit the UFOs, otherwise known as tempEnemy. So those are the different sort of collision detections that I need to do.

All right, and what I am going to do is I am going to go ahead and just have some trace statements anytime some thing gets hit. You can see I already have some laser hits the top, so that's a sort of collision detection that's currently going on. So let's just go into my Actions panel, and as I scroll down, let's jump into my player, the movePlayer. We can see that. And in moveLaser, you can see this trace("laser hits top").

Well, I really don't need this. In fact, that's probably going to get in the way, so I'm just going to delete it. I already know it works; everything is fine. Let's scroll down a little further. We can see makeEnemies, then moveEnemies, and there is already a little bit of detection going on in here because I check to see when the tempEnemy is sort of on the sides and it sort of moves them back into the playable area. Well, I need to check to see if the tempEnemy hits the bottom as well.

So if the tempEnemy is sort of beyond the stage, so if its y-position is greater than the stages stageHeight, just like that, closing parentheses, two curly braces, and anything within these curly braces will go ahead and execute. Here's where I can put a trace statement. It says enemy scores. So the enemy hits the bottom, then the enemy scores, and that's what this statement does. So I check for the bottom. But I also need to check to see when the enemy hits the player, and that's going to be determined basically by performing a Hit Test Object.

So right down here in the Mobile Game folder, in my Code Snippets panel, Hit Test Object is what I want to add, so I'll double-click on that, and it adds this if statement. So if the tempEnemy hits the player, then do whatever you need to in here. So I'm going to just take this, and I'm going to cut it and move it back up to where I was, which was right in here. Now, I could add it right at about line 207, like that, but really, I want to condense this code a little better.

In fact, what I can do is within this if statement right here, I can add two pipes, two of these bars. Again, this basically means "or." So if the tempEnemy hits the bottom or the tempEnemy hits the player, and I'll just click and drag that with it selected, I can drag that on in there. If the tempEnemy hits the player, then also give the enemy a score as well. So that's basically combining two if statements. And in fact, I can just remove this if statement, including those comments. Great! That is actually going to work out just fine.

In fact, let's go ahead and do a test movie. Click Play. So it is sort of printing out in the Output panel, STATE_PLAY_GAME and it's kind of hard to see, but I actually can go ahead and close that SWF file and check out my Output panel and see where that's at. In fact, what I am going to do is I am just going to go ahead and click and drag this Output panel over here to the Library panel. Now, I can scroll through this much easier.

You can see it says enemy scores. So I did actually implement that correctly. Everything looks good, but the enemy is scoring plenty, and quite frankly, I need to score as the player. So that's the next step, but it gets a little more tricky because I need to determine when a laser hits the enemy, and both of these are basically an array of items. So I need to determine when one item in an array hits another item in another array, and I am going to do this by adding a code snippet and adding Array Item Collisions.

So it gets a little more advanced, but the concepts are still there, as you'll see. So I've double-clicked on that. We can see we have this function called testCollisions, and it does check for the collisions between items in an enemy's array and a laser's array, and again those are already created. It is just with this function, it actually checks for them. So in here, in this function, it creates two variables called tempEnemy and tempLaser, and right in here, if I hit Tab, I basically loop through the enemies array, and every item in that enemy's array becomes tempEnemy.

So it checks for all those items in there, and now they are known as tempEnemy, and it says hey! Loop through that and with these lasers, right in here, loop through the laser's array like that, and for every item in the laser's array, it is now known as tempLaser. So these are like the temporary names of each one of those. And then from there, I can determine when the tempEnemy hits the tempLaser. So I need to check for all the items in the enemy's array and all the items in the laser's array to determine when the enemy hits the laser, and sure enough, here's the trace statement, Laser hit tempEnemy.

And lastly, we have this break statement, which just stops this whole loop from happening. So these two words match up. Just go ahead and stop this for loop. So that's how you loop through two arrays, and then you check to see when one item hits another item. Last thing I need to do is just move this up. So I'll select all this code, and I'll cut it and move it on up. Under moveEnemies, again where I have that hitTestObject, about line 210, I can paste that in.

All right, so that's in the right location. testCollisions is in the right location. I will copy this name because I need to make sure this function gets called, and I want this to get called with everything else during the playGame function. So as you're moving those lasers, just go ahead and test for those collisions as well. All right, so there it is. Everything seems to be in place. Let's just do a test movie, and again we're just going to see some things happened in the Output panel.

So I'll click Play. We can see STATE_PLAY_GAME, and as I start hitting those tempEnemies, the laser hits them, then you see those trace statements. Let me go ahead and close that and take a look at the Output panel. You can see the enemy scores plenty as they hit the bottom, but you can see right up in here, Laser hit tempEnemy. So it is all actually working. I performed a couple different hit tests, not only with the position of items as the UFOs come down when they collide with the player, as well as when the laser collides with the UFO, which happened to be in arrays.

So the next step is to go ahead and add some explosions when these items collide.

There are currently no FAQs about Flash Professional CS5: Creating a Simple Game for Android Devices.

 
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

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.

join now 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 Flash Professional CS5: Creating a Simple Game for Android Devices.

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
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.

Are you sure you want to delete this note?

No

Notes cannot be added for locked videos.

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
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.