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"}));

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

  • 相关阅读:
    网盘搜索网站汇总
    AutoIt3病毒杀毒攻略(详)
    数据库的逻辑结构设计
    Oracle数据类型
    选择ORACLE数据库字符集
    ETL讲解(很详细!!!)
    Oracle左连接,右连接,全外连接和+号的用法
    Oracle用户创建及权限设置
    内连接、外连接、自然连接
    关系数据库关系代数
  • 原文地址:https://www.cnblogs.com/bulolo/p/2808958.html
Copyright © 2011-2022 走看看