Jump to content

  • Log In with Google      Sign In   
  • Create Account


Game scenes transition in AS3


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 JETeran   Members   -  Reputation: 265

Like
0Likes
Like

Posted 17 August 2012 - 07:58 AM

Hello everybody.


I'm making a game in AS3 and, based on googling and your help in this forum, I'll have the game scenes (game, mainmenu, credits, ...) in different MCs.

So, what I want to do is have control over them and make them appear when the user presses a button (already acomplish this)


For example, make a new MC called Intro, as soon as Intro finish, delete it and make MainMenu MC appear; if I click Credits, delete MainMenu and make Credits appear, and so on.

What is the best method to accomplish this??

Thanks so much in advance !!

BTW
One of the codes I find more interesting was this:
http://www.newgrounds.com/bbs/topic/868016#bbspost15599445_post_text

I tried to use it in so many ways but I didn't acomplished my objectives.

Success with courage.

José Eduardo Terán

Project Manager & Game Programming Professor. DSK International Campus

Indie Game Developer
Google + Account


Sponsor:

#2 IronyGames   Members   -  Reputation: 134

Like
1Likes
Like

Posted 17 August 2012 - 12:49 PM

Quickest way is to addChild() when you want to add the scene to the stage (remember to set the coords!), and removeChild() when you want it gone.

Scenes, therefore, should extend Sprite or MovieClip or so; basically having a huge MC-container for all the stuff in the different scenes. Or what you have is just fine, remember to export for AS3.

Couple tips:
  • First add the new scene so it's atop of the stage, then remove the old scene. Doing viceversa will make an ugly effect where there's nothing for a second.
  • The MCs might take time to be added, you might want to control that.
  • Make sure to make the MC instances point null when you're done with them so the garbage collector can free memory!

Another choice is to add all the childs and to have their alpha = 0 unless they are needed. This is quicker for time, but more memory-expensive I think, and besides they have to have a stop button when they're not opaque -- meaning it's not their turn.


I was unaware of your AS3 level so I tried to explain as much as possible.

#3 JETeran   Members   -  Reputation: 265

Like
0Likes
Like

Posted 18 August 2012 - 07:51 AM

Hey IronyGames, thanks so much for your help.

Before I check very carefuly your suggestions, I want to show you what I did:

package  {

import flash.display.MovieClip;
import flash.events.Event;

public class ScenesChange extends MovieClip {

  public function ScenesChange() {
   //vars
   var introScene:IntroScene = new IntroScene;
   var menuScene:MenuScene = new MenuScene;
   var endIntroScene:Boolean = false;
  
   addEventListener(Event.ENTER_FRAME, checkStates);
  
   function checkStates(event:Event) {
	if (introScene.endIntroScene == true) {
	 addChild(menuScene);
	 removeChild(introScene);
		
	}
   }
  
   addChild(introScene);
  
  }

}

}

Ok now, I have 2 MCs in the library, one called IntroScene and another called MenuScene. At the end of introScene (instance of IntroScene) I have a flag that tells me endIntroScene = true;

Now when that flag it's true, remove introScene and add menuScene.

Ok with this code, so far so good. But I'm receiving this error/warning: ArgumentError: Error #2025. Even though it runs correctly.

Now I have some Qs:

- (READ EDIT) Can I keep the function ScenesChange running and check when a stage ends? (I think it's better to finish it when it's function it's over, how can I do it?
- I will have many stages in the game (for example a small curtain that appears in each action of the game (press play, credits, ... , during the game when you enter the mission or die, and so on) Can I control it with this flag method?

This is the main problem that drives me crazy ! I'm handling the rest of the game very good.

Thanks so much for your guidance !!

EDIT:
Ok what I did is create a new function inside checkStates and in that new function, create the MenuScene and then removeEventListener the checkStates listener; and so far so good ! That strange Error #2025 is not appearing anymore.

My other Q after all this is to know if I am doing the right thing? Of course I do because it works, but is a good way to do it?!

Thanks guys once again !!!!

Edited by JETerán, 18 August 2012 - 08:30 AM.

Success with courage.

José Eduardo Terán

Project Manager & Game Programming Professor. DSK International Campus

Indie Game Developer
Google + Account





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS