zoukankan      html  css  js  c++  java
  • 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"}));

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

  • 相关阅读:
    Keras学习率调整
    机器学习算法的调试---梯度检验(Gradient Checking)
    Python 上下文管理器
    Python垃圾回收机制
    Css 动画的回调
    全新的membership框架Asp.net Identity——绕不过的Claims
    CSS代码重构与优化
    html5 本地存储
    ASP.NET MVC 随想录
    谈谈Angular关于$watch,$apply 以及 $digest的工作原理
  • 原文地址:https://www.cnblogs.com/bulolo/p/2808958.html
Copyright © 2011-2022 走看看