starling1.2 游戏思路<2>

 第四步: 游戏界面切换

 

我们假设我们已经把四个场景都写好了

1.InGameScreen:InGame;
2.WelcomeScreen:Welcome;
3.AboutScreen:About;
4.OverScreen:Over;

 

那我们怎样在这之间切换?

-----自定义事件

events下 创建一个自定义事件 NavEvent.as用于发送事件

 

NavEvent.as类 

 1 package events
 2 {
 3     import starling.events.Event;
 4     
 5     public class NavEvent extends Event
 6     {
 7         public static const CHANGESCREENS:String = "changeScreens";
 8         
 9         public var params:Object;
10         
11         public function NavEvent(type:String, bubbles:Boolean = false, _params:Object = null)
12         {
13             super(type, bubbles, _params);
14             
15             this.params = _params;
16             
17         }
18     }
19 }

 

然后在Game类中添加侦听

this.addEventListener(NavEvent.CHANGESCREENS, onChange);
 1 private function onChange(event:NavEvent):void
 2         {
 3             switch (event.params.id)
 4             {
 5                 case "start":
 6                     InGameScreen.init();
 7                     WelcomeScreen.hide();
 8                     AboutScreen.hide();
 9                     OverScreen.hide();
10                     break;
11                 case "about":
12                     InGameScreen.hide();
13                     WelcomeScreen.hide();
14                     AboutScreen.init();
15                     OverScreen.hide();
16                     break;
17                 case "back":
18                     InGameScreen.hide();
19                     WelcomeScreen.init();
20                     AboutScreen.hide();
21                     OverScreen.hide();
22                     break;
23                 case "over":
24                     InGameScreen = new InGame();
25                     this.addChild(InGameScreen);
26                     InGameScreen.hide();
27                     WelcomeScreen.hide();
28                     AboutScreen.hide();
29                     OverScreen.init();
30                     break;
31                 case "ingameback":
32                     AboutScreen.hide();
33                     WelcomeScreen.init();
34                     OverScreen.hide();
35                     InGameScreen = new InGame();
36                     this.addChild(InGameScreen);
37                     InGameScreen.hide();
38                     break;
39             }
40         }

 

 我们可以看到 在这些不同界面的类中会有init()  hide(),其实就是隐藏和显示当前界面

当我需要的时候通过发送事件 来执行我想要的界面

比如 当我在欢迎界面的时候单机 start开始 ,那我就发送  "start"  过去 来切换场景。

 

this.dispatchEvent(new NavEvent(NavEvent.CHANGESCREENS, true, {id:"start"}));

 

 基本是这样啦。然后游戏的内容就靠策划了~~

转载于:https://www.cnblogs.com/bulolo/archive/2012/12/08/2808958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值