【最强眼力山寨版】钛合金眼神的试炼

前言

微信的一些小游戏是很受商家欢迎的,商家A:看看这个微信小游戏多少人玩,我们搞一个的话绝对可以吸引一批人….于是乎也会有客户需要搞些小游戏,最强眼力就是其中一个,那么现在我们来试试用lufylegend来写一个山寨版。

难点

几个杯子起点及终点还有银币的位置都是很简单就可以确定的,可以用随机数。难就难在如何做摇动杯子交换位置的效果,还有就是每个分数需要提升的速度。

在线演示效果

演示效果-runJS

实际效果

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

核心源代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>

  <meta name="apple-mobile-web-app-capable" content="yes"/>
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta content="telephone=no,email=no" name="format-detection">
  <meta name="full-screen" content="true"/>
  <meta name="screen-orientation" content="portrait"/>
  <meta name="x5-fullscreen" content="true"/>
  <meta name="360-fullscreen" content="true"/>
  <script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="../js/jquery-migrate-1.2.1.min.js"></script>
  <script src="../js/box2dWeb/Box2dWeb-2.1.a.3.min.js"></script>
  <script src="../js/lufylegend/lufylegend-1.10.0.min.js"></script>


  <style>
    body{
      padding: 0;
      margin: 0;
    }
  </style>

</head>
<body>

<div id="game" style=""></div>

<script type="text/javascript">

  var GameSettings={
    limitTime:25 //游戏设定,这是当前游戏的限制时间,以秒为单位。
    ,rows:10

    ,opening_animation_time:1 //默认的开场动画的时间,秒为单位,默认1s。
    ,cup_open_or_close_time:0.2 //默认的打开一个杯子的动画的演示时间,秒为单位,默认1s。
    ,cup_stay_time_after_open:0.5 //默认打开一个杯子以后停留时间,该时间是让猜测者可以看清楚硬币是不是在这个杯子。
    ,max_life:3 //最多限制有几条命,当然,-1 表示无限制。
    ,cup_amount:3 //有多少个杯子,请勿放太多杯子,否则会让玩家变傻的。

  };


  var GameOptions={
    width:480
    ,height:800
  };
  var GameData={
    score:0
    ,beginTime:0
    ,stage:1 //当前关卡。

    ,endTime:0
    ,currentRowIndex:0 //游戏当前的行数是。。。以0开始。
    ,userWantsStart:false
    ,playing:false
    ,busy:false //当前是否忙
    ,showAnimation:false //是否正在执行动画。
    ,timeOver:false //是否游戏结束
    ,usedLife:0//已经用了多少条命了。
    ,gameOver:false//是否游戏结束
    ,allowOpenCup:false//是否允许打开杯子。
  };
  var innerTools={
    timeFormat:function(seconds){
      var _seconds=parseInt(seconds);
      var _s=_seconds%60;
      var _m=parseInt((_seconds-_s)/60)%60;
      var _str="";
      if(_m<=9){
        _str="0"+""+_m;
      }
      else{
        _str=""+_m;
      }
      if(_s<=9){
        _str=_str+":0"+_s;
      }
      else{
        _str=_str+":"+_s;
      }
      return _str;
    }
  };

</script>
<script>
  //--这是需要加载的各种资源。
  var _resources=[];
  //--加载完成后得到的数据。,
  var resourceList={};
  function _addResource(name,path){
    _resources.push({
      name:name
      ,path:path
    });
  }

  var LayerLoading={};

  //--初始化其他设置,设置屏幕等等。
  function resetSystem(){
    //--刚体系统设置
    LGlobal.box2d = new LBox2d();
    //--屏幕设置
    //LGlobal.align = LStageAlign.BOTTOM_MIDDLE;
    LGlobal.stageScale = LStageScaleMode.SHOW_ALL;
    //LGlobal.stageScale = LStageScaleMode.EXACT_FIT;

    LSystem.screen(LStage.FULL_SCREEN);
//    LGlobal.stageScale = LStageScaleMode.SHOW_ALL;
//    LSystem.screen(LStage.FULL_SCREEN);
  }
  //--加载资源。
  function loadResources(callback){
    _addResource("coin","images/coin.png");
    _addResource("cup_shadow","images/cup-shadow.png");
    _addResource("cup","images/cup.png");
    _addResource("game_title","images/game-title.png");
    _addResource("game_title2","images/game-title2.png");
    _addResource("game_whole_cup","images/game-whole-cup.png");
    _addResource("heart","images/heart.png");
    _addResource("start_words","images/start_words.png");
    LayerLoading = new LoadingSample3();
    addChild(LayerLoading);
    //--这里开始要加载资源了。
    LLoadManage.load(
            _resources,
            function(progress){LayerLoading.setProgress(progress);}
            ,
            function(_resource_loaded_object){
              resourceList=_resource_loaded_object;
              removeChild(LayerLoading);
              if(callback){
                callback();
              }
            }
    );
  }

  init(10,"game",GameOptions.width,GameOptions.height,function(){
    resetSystem();
    loadResources(function(){
      console.log("初始化完成。");
      gameInit();
    });
  });
</script>

<script>
  //--游戏的初始化。
  function gameInit(){

    ObjMenu=setMenuLayer({
      onClick:function(){
        removeChild(LayerMenu);
        //ObjMain.play();
        console.log("玩游戏");
        ObjMain.show(function(){
          ObjMain.start_game();
        });
      }
    });
    ObjMain=setMainLayer();
    addChild(LayerMain);
    addChild(LayerMenu);
  }
</script>

<script>
  var LayerMenu=new LSprite();
  var LayerMain=new LSprite();
  var ObjMain={};
  var ObjMenu={};
  function setMenuLayer( __opts){

    var settings={
      onClick:function(){

      }
    };
    $.extend(settings,__opts);
    var menuLayer = new LSprite();

    //--分别有标题和开始按钮。
    var bitmap_title=new LBitmap(new LBitmapData(resourceList["game_title2"]));
    var sp_title=bitmap_title;
    var bitmap_start=new LBitmap(new LBitmapData(resourceList["start_words"]));
    var button_start=new LButton(bitmap_start);
    sp_title.alpha=0;
    button_start.alpha=0;
    sp_title.x=parseInt(GameOptions.width/2-bitmap_title.width/2);
    sp_title.y=parseInt(GameOptions.height/2-bitmap_title.height/2);

    button_start.x=parseInt(GameOptions.width/2-bitmap_start.width/2);
    button_start.y=parseInt(GameOptions.height/2-bitmap_start.height/2);


    menuLayer.addChild(sp_title);
    menuLayer.addChild(button_start);
    function _click_handler(event){
      if(settings.onClick){
        settings.onClick();
      }
    }
    //--开幕动画。

    var tween = LTweenLite.to(sp_title,GameSettings.opening_animation_time,{alpha:1,onComplete:function(){
      LTweenLite.to(sp_title,GameSettings.opening_animation_time,{alpha:0,onComplete:function(){
        LTweenLite.to(button_start,GameSettings.opening_animation_time,{alpha:1,onComplete:function(){
          menuLayer.addEventListener(LMouseEvent.MOUSE_UP,_click_handler);
        }});
      }});
    }});

    LayerMenu=menuLayer;
  }
  function setMainLayer(__opts){
    var settings={};
    $.extend(settings,__opts);

    var _root_=new LSprite();

    var container_top_bar=new LSprite();
    var text_score=new LTextField();
    var text_life_tips=new LTextField();
    var container_lives=new LSprite();
    var game_top_bar={
      init:function(){
        var child=this;
        text_score.color="#000000";
        text_score.size=18;
        text_score.text="关卡:1";

        text_life_tips.color="#000000";
        text_life_tips.size=18;
        text_life_tips.text="剩余次数:";

        var _theLocInfo=child._setMaxLife();
        container_lives.x=GameOptions.width-_theLocInfo.width;
        container_lives.y=0;
        text_life_tips.x=container_lives.x-100;



        container_top_bar.addChild(text_score);
        container_top_bar.addChild(text_life_tips);

        container_top_bar.addChild(container_lives);

        _root_.addChild(container_top_bar);


      }
      ,resetScore:function(){
        text_score.text="关卡:"+GameData.stage;
      }
      ,_setMaxLife:function(){
        //--根据生命条数来计算相关次数。
        if(GameSettings.max_life==0||GameSettings.max_life<0){
          var _life_text=new LTextField();
          _life_text.color="#000000";
          _life_text.size=18;
          _life_text.text="无限";
          container_lives.addChild(_life_text);

          return {
            width:40
            ,height:36
          };
        }
        var _width=0;
        var _height=0;
        for(var i=0;i< GameSettings.max_life;i++){
          var bitmap_life=new LBitmap(new LBitmapData(resourceList["heart"]));
          _width=_width+bitmap_life.width;
          _height=bitmap_life.height;
          bitmap_life.x=_width-bitmap_life.width;
          bitmap_life.y=0;
          bitmap_life.name="life_"+i;
          container_lives.addChild(bitmap_life);
        }
        return {
          width:_width
          ,height:_height
        };

      }
      //--显示几条命。
      ,setCurrentLife:function(theLifeNum){
        if(GameSettings.max_life<=0){
          return;
        }
        for(var i=0;i< GameSettings.max_life;i++){
          var _now_bitmap=container_lives.getChildByName('life_'+i);
          if(_now_bitmap==null){
            continue;
          }
          if(i<theLifeNum){
            _now_bitmap.visible=true;
          }
          else{
            _now_bitmap.visible=false;
          }
        }
      }
    };
    game_top_bar.init();
    window.game_top_bar=game_top_bar;

    //--这是杯子对象,包括两个部分,杯子及杯子的倒影。
    function SpriteCup(_opts){
      var sprite_settings={
        onCupClick:function(event,theObj){

        }
      };
      $.extend(sprite_settings,_opts);
      var _cup_root=new LSprite();
      var _bitmap_cup=new LBitmap(new LBitmapData(resourceList["cup"]));
      var _bitmap_cup_shadow=new LBitmap(new LBitmapData(resourceList["cup_shadow"]));
      var _bitmap_coin=new LBitmap(new LBitmapData(resourceList["coin"]));

      _bitmap_cup.name="cup";
      _bitmap_coin.name="coin";
      _bitmap_cup_shadow.name="shadow";


      var _cup_width=_bitmap_cup.width;
      var _cup_height=_bitmap_cup.height;

      var _cup_between_distance=56;
      var _open_close_distance=50;
      var innerData={
        cup_x:0
        ,cup_y:0
        ,cup_shadow_x:0
        ,cup_shadow_y:0
        //--打开及关闭时候的距离和各自的位置。
        ,cup_x2:0
        ,cup_y2:0
        ,cup_shadow_x2:0
        ,cup_shadow_y2:0
        //--阴影的缩放比率。
        ,shadow_scale_origin:1
        ,shadow_scale_min:1

        //--
        ,middle_x:0
        ,middle_y:0
      };
      //--中间的交接距离是;
      innerData.middle_x=parseInt(_cup_width/2);
      innerData.middle_y=_cup_height-parseInt(_cup_between_distance/2);

      innerData.cup_shadow_y=_cup_height-parseInt(_cup_between_distance/2);
      innerData.cup_y2=innerData.cup_y-_open_close_distance;
      innerData.cup_shadow_y2=innerData.cup_shadow_y+_open_close_distance;

      _bitmap_cup.x=innerData.cup_x;
      _bitmap_cup.y=innerData.cup_y;

      _bitmap_cup_shadow.x=innerData.cup_shadow_x;
      _bitmap_cup_shadow.y=innerData.cup_shadow_y;



      _bitmap_coin.x=innerData.middle_x-parseInt(_bitmap_coin.width/2);
      _bitmap_coin.y=innerData.middle_y-parseInt(_bitmap_coin.height/2);




      _cup_root.addChild(_bitmap_cup_shadow);
      _cup_root.addChild(_bitmap_coin);
      _cup_root.addChild(_bitmap_cup);
      _cup_root.name=""+new Date();

      _cup_root.addEventListener(LMouseEvent.MOUSE_UP,function(event){
        var _the_root_name=_cup_root.name;
        sprite_settings.onCupClick(event,_the_root_name);
      });



      var robj={

        getRoot:function(){
          return _cup_root;
        }
        ,getSizeInfo:function(){
          return {
            width:_cup_width
            ,height:_cup_height*2-parseInt(_cup_between_distance/2)
            ,between_distance:_cup_between_distance
            ,middle_y:0 //中间点位置
            ,middle_x:0
          };
        }
        //--打开的动画动作演示。
        ,open:function(callback){
          LTweenLite.to(_bitmap_cup,GameSettings.cup_open_or_close_time,{y:innerData.cup_y2,onComplete:function(){
            if(callback){
              callback();
            }
          }});
          LTweenLite.to(_bitmap_cup_shadow,GameSettings.cup_open_or_close_time,{
            //scaleX:innerData.shadow_scale_min
            //,scaleY:innerData.shadow_scale_min
            y:innerData.cup_shadow_y2
            ,onComplete:function(){

          }});
        }
        ,close:function(callback){
          LTweenLite.to(_bitmap_cup,GameSettings.cup_open_or_close_time,{y:innerData.cup_y,onComplete:function(){
            if(callback){
              callback();
            }
          }});
          LTweenLite.to(_bitmap_cup_shadow,GameSettings.cup_open_or_close_time,{
            //scaleX:innerData.shadow_scale_origin
            //,scaleY:innerData.shadow_scale_origin
            y:innerData.cup_shadow_y
            ,onComplete:function(){

            }});
        }
        ,showCoin:function(){
          _bitmap_coin.visible=true;
        }
        ,hideCoin:function(){
          _bitmap_coin.visible=false;
        }
        ,hasCoin:function(){
          return _bitmap_coin.visible;
        }
      };


      return robj;

    }

    var CupSpriteList=[];

    var cupListContainer=new LSprite();

    var _middle_cup_index=-1;


    //--杯子控制器。
    var CupContr={
      init:function(__opts){
        var _child=this;

        var _container_width=_child.getCupTotalWidth();
        var _container_height=_child.getCupHeight();
        _child.initData();

        for(var i=0;i< GameSettings.cup_amount;i++){

          var _cup1=SpriteCup({
            onCupClick:function(event,theObj){
              console.log("点击了bit map");
              if(GameData.showAnimation){
                console.log("动画显示中。。。");
                return;
              }
              if(GameData.gameOver){
                console.log("游戏已经结束了。");
                return;
              }
              if(GameData.allowOpenCup==false){
                console.log("不允许打开杯子了。");
                return;
              }
              GameData.allowOpenCup=false;
              console.log(theObj);
              var _theReturnObj=_child.getCupObjByName(theObj);

              console.log("真实的名字是:"+_theReturnObj.getRoot().name,"x:"+_theReturnObj.getRoot().x);

              var _hasCoin=_theReturnObj.hasCoin();
              console.log("是否有硬币:"+_hasCoin);

              //_theReturnObj.getRoot().visible=false;
              function _check_fail(){
                if(GameSettings.max_life<=0){
                  //--无限命。
                  TipsContr.showText("你选错啦。",function(){
                    _child.start_game();
                  });


                }
                else{
                  GameData.usedLife++;
                  if(GameData.usedLife>GameSettings.max_life){
                    //--game over。
                    GameData.gameOver=true;
                    console.log("game over");
                    TipsContr.showText("游戏结束");

                  }
                  else{
                    game_top_bar.setCurrentLife(GameSettings.max_life-GameData.usedLife);
                    TipsContr.showText("继续努力。",function(){
                      _child.start_game();
                    });
                  }

                }
              }
              function _check_ok(){
                GameData.stage++;
                game_top_bar.resetScore();
                _child.start_game();
              }
              _theReturnObj.open(function(){

                //--看看是不是无限命。
                setTimeout(function(){
                  _theReturnObj.close(function(){
                    if(_hasCoin){

                      _check_ok();


                    }
                    else{

                      _check_fail();


                    }
                  });
                },GameSettings.cup_stay_time_after_open*1000);
              });


              return;

              theObj.showCoin(function(){
                var _hasCoin=theObj.hasCoin();
                console.log("是否有硬币:"+_hasCoin);
                setTimeout(function(){},GameSettings.cup_stay_time_after_open*1000);
              });

            }
          });
          var _loc=_child.getCupLocInfo(i);
          _cup1.getRoot().x=_loc.x;
          _cup1.getRoot().y=_loc.y;
          _cup1.getRoot().name="cup_"+i;
          CupSpriteList.push(_cup1);
          cupListContainer.addChild(_cup1.getRoot());
        }

        cupListContainer.x=parseInt((GameOptions.width-_container_width)/2);
        cupListContainer.y=250;

        window.CupList=CupSpriteList;
        cupContainer=cupListContainer;
        _root_.addChild(cupListContainer);
        var me=this;
        me.setCoinAt(GameSettings.cup_amount+999);
      }
      ,start_game:function(){
        GameData.showAnimation=true;
        GameData.allowOpenCup=false;
        var _ex_time=3;
        _ex_time=_ex_time+GameData.stage;
        if(_ex_time>18){
          _ex_time=18;
        }
        var _speed=15;
        _speed=_speed-GameData.stage;
        if(_speed<2){
          _speed=2;
        }

        TipsContr.showStageTips(GameData.stage,function(){
          CupContr.start_game_exchange(_ex_time,_speed,{
            before_animating:function(){

            }
            //运行动画前的操作。
            ,when_over:function(){

              TipsContr.showChoose(function(){
                GameData.showAnimation=false;
                GameData.allowOpenCup=true;
              });
            }
            //动画结束的动作。
          });

        });
      }
      ,initData:function(){
        _middle_cup_index=parseInt((GameSettings.cup_amount-GameSettings.cup_amount%2)/2);

      }
      //--getCupObject
      ,getCupObjByName:function(cupName){
        var _obj=null;
        for(var i=0;i< CupSpriteList.length;i++){
          if(CupSpriteList[i].getRoot().name==cupName){
            return CupSpriteList[i];
          }
        }
        return _obj;
      }
      //--计算某个杯子应该的位置。
      ,getCupLocInfo:function(cupIndex){
        var _opt={width: 80, height: 140, between_distance: 56, middle_y: 0, middle_x: 0};
        var _cup_sep=20;//杯子间隔。

        var loc={x:0,y:0};

        loc.x=_opt.width*cupIndex+_cup_sep*cupIndex;
        loc.y=0;

        return loc;
      }
      //--计算杯子的总长度及总高度。
      ,getCupTotalWidth:function(){
        var _opt={width: 80, height: 140, between_distance: 56, middle_y: 0, middle_x: 0};
        var _cup_sep=20;//杯子间隔。
        return _opt.width*GameSettings.cup_amount+_cup_sep*(GameSettings.cup_amount-1);

      }
      ,getCupHeight:function(){
        return 140;
      }
      //--打开某个杯子。
      ,openCup:function(cupIndex,callback){
        if(CupSpriteList[cupIndex]!=undefined){
          CupSpriteList[cupIndex].open(function(){
            if(callback){
              callback();
            }
          });
        }
      }
      ,closeCup:function(cupIndex,callback){
        if(CupSpriteList[cupIndex]!=undefined){
          CupSpriteList[cupIndex].close(function(){
            if(callback){
              callback();
            }
          });
        }
      }
      //--对当前的杯子排序---按照当前杯子的顺序位置来决定谁是第一位。
      ,sortCupList:function(){
        var _arr= CupSpriteList.sort(function(a,b){

          return a.getRoot().x> b.getRoot().x?1:-1});//从小到大排序
        var _arr_names=[];
        for(var i=0;i< _arr.length;i++){
          _arr_names.push(_arr[i].getRoot().name);
        }
        console.log("现在的排序:"+_arr_names.join(","));
        CupSpriteList=_arr;
        window.CupList=_arr;
      }
      //--设定当前应该是第几个杯子有硬币
      ,setCoinAt:function(cupIndex){
        for(var i=0;i< CupSpriteList.length;i++){
          CupSpriteList[i].hideCoin();
        }
        if(CupSpriteList[cupIndex]!=undefined){
          CupSpriteList[cupIndex].showCoin();
        }
      }
      //--根据角度及中心点及起始点,计算某个杯子在某个弧度的坐标位置。
      ,_calculate_location_on_circle:function(angle,radius){
        var __realLoc={"x":Math.cos(angle)*radius,"y":Math.sin(angle)*radius};
        return __realLoc;
      }
      //--好了,现在来演示两个杯子如何交换,交换动画。
      ,cup_exchange:function(cupIndex1,cupIndex2,timeInterval,callback){
        var me=this;
        //--首先排一下序。
        if(cupIndex1==cupIndex2){
          console.log("error:不能是同一个杯子。");
          return;
        }
        if(CupSpriteList[cupIndex1]==undefined||CupSpriteList[cupIndex2]==undefined){
          console.log("error:至少有一个杯子不存在。");
          return;
        }
        var _opt={width: 80, height: 140, between_distance: 56, middle_y: 0, middle_x: 0};

        var _left_cup_index=0;
        var _right_cup_index=0;
        if(cupIndex1>cupIndex2){
          _left_cup_index=cupIndex2;
          _right_cup_index=cupIndex1;
        }
        else if(cupIndex2>cupIndex1){
          _left_cup_index=cupIndex1;
          _right_cup_index=cupIndex2;
        }
        //--还需要计算中间那个点,还有中心点,还有就是半径。
        var _left_cup=CupSpriteList[_left_cup_index];
        var _right_cup=CupSpriteList[_right_cup_index];
        //简化计算。
        var _radius=parseInt((_right_cup.getRoot().x-_left_cup.getRoot().x)/2);

        var _left_origin_x=_left_cup.getRoot().x;
        var _left_origin_y=0;

        var _right_origin_x=_right_cup.getRoot().x;
        var _right_origin_y=0;

        var _center_x=_left_origin_x+_radius;
        var _center_y=0;
        //---好了,那么现在就开始用动画显示了。
        var _now_angle=180;
        var _sep_angle=5;
        var _now_right_angle=360;

        var _animate_inteval=setInterval(function(){
          _now_angle=_now_angle-_sep_angle;
          _now_right_angle=_now_right_angle-_sep_angle;

          if(_now_angle<0){
            _left_cup.getRoot().x=_right_origin_x;
            _left_cup.getRoot().y=_right_origin_y;
            _right_cup.getRoot().x=_left_origin_x;
            _right_cup.getRoot().y=_left_origin_y;
            clearInterval(_animate_inteval);
            me.sortCupList();
            if(callback){
              callback();
            }
            return;
          }
          var _real_left_angle=(_now_angle*Math.PI)/180;
          var _left_loc=me._calculate_location_on_circle(_real_left_angle,_radius);
          //--好了,计算当前位置。
          _left_loc.x=_left_loc.x+_center_x;
          _left_loc.y=_left_loc.y+_center_y;
          var _real_right_angle=(_now_right_angle*Math.PI)/180;
          var _right_loc=me._calculate_location_on_circle(_real_right_angle,_radius);

          _right_loc.x=_right_loc.x+_center_x;
          _right_loc.y=_right_loc.y+_center_y;

          _left_cup.getRoot().x=_left_loc.x;
          _left_cup.getRoot().y=_left_loc.y;

          _right_cup.getRoot().x=_right_loc.x;
          _right_cup.getRoot().y=_right_loc.y;


        },timeInterval);
      }
      //--好了,现在就是一个完整的关卡动画控制了。 ---这里只是随机选择要摇晃的杯子。。
      ,start_game_exchange:function(exchangeTimes,speed,opts){
        var me=this;

        var child_settings={
          before_animating:function(){}
          //运行动画前的操作。
          ,when_over:function(){}
          //动画结束的动作。

        };
        $.extend(child_settings,opts);
        child_settings.before_animating();
        me.setCoinAt(_middle_cup_index);
        me.openCup(_middle_cup_index,function(){
          setTimeout(function(){
            me.closeCup(_middle_cup_index,function(){
              setTimeout(function(){
                _start_exchange();
              },100);
            });
          },GameSettings.cup_stay_time_after_open*1000);
        });
        function _start_exchange(){
          var _total_exchange_times=exchangeTimes;
          var _now_time=0;
          var _busy=false;
          var _animate_interval=setInterval(function(){
            if(_now_time>=_total_exchange_times){

              clearInterval(_animate_interval);

              return;
            }
            if(_busy){

              return;
            }
            _busy=true;
            _now_time++;
            var random_index_1=parseInt(Math.random()*1000)%GameSettings.cup_amount;
            //--第二个不重复的随机数。
            var _arr_random=[];
            for(var i=0;i< GameSettings.cup_amount;i++){
              if(i==random_index_1){
                continue;
              }
              _arr_random.push(i);
            }
            var _random_seq=parseInt(Math.random())*1000%(GameSettings.cup_amount-1);
            var random_index_2=_arr_random[_random_seq];

            me.cup_exchange(random_index_1,random_index_2,speed,function(){
              _busy=false;
              if(_now_time>=_total_exchange_times){
                child_settings.when_over();
              }
            });
          },speed);
        }
      }

    };

    //--提示控制器。
    var tips_stage=new LTextField();
    var tips_choose=new LTextField();
    var tips_showText=new LTextField();
    var TipsContr={
      init:function(){
        tips_stage.color="#000000";
        tips_stage.size=24;
        tips_stage.text="关卡"+GameData.stage;



        tips_choose.color="#000000";
        tips_choose.size=24;
        tips_choose.text="猜猜金币在哪里?(请选择)";

        tips_showText.color="#000000";
        tips_showText.size=24;
        tips_showText.text="";


        tips_stage.x=GameOptions.width/2-tips_stage.width/2+50;
        tips_stage.y=400;

        tips_choose.x=GameOptions.width/2-150;
        tips_choose.y=400;

        tips_showText.x=GameOptions.width/2-150;
        tips_showText.y=400;




        tips_stage.alpha=0;
        tips_choose.alpha=0;

        tips_showText.alpha=0;

        _root_.addChild(tips_stage);
        _root_.addChild(tips_choose);
        _root_.addChild(tips_showText);
      }
      ,showStageTips:function(stageIndex,callback){
        tips_stage.alpha=0;
        tips_choose.alpha=0;

        tips_showText.alpha=0;
        tips_stage.text="关卡"+stageIndex;
        LTweenLite.to(tips_stage,GameSettings.opening_animation_time,{alpha:1,onComplete:function(){
          if(callback){
            callback();
          }
        }});
      }
      ,showChoose:function(callback){
        tips_stage.alpha=0;
        tips_choose.alpha=0;

        tips_showText.alpha=0;
        LTweenLite.to(tips_choose,GameSettings.opening_animation_time,{alpha:1,onComplete:function(){
          if(callback){
            callback();
          }
        }});
      }
      ,showText:function(msg,callback){
        tips_stage.alpha=0;
        tips_choose.alpha=0;

        tips_showText.alpha=0;
        tips_showText.text=msg;
        LTweenLite.to(tips_showText,GameSettings.opening_animation_time,{alpha:1,onComplete:function(){
          if(callback){
            callback();
          }
        }});
      }
    };

    CupContr.init();
    TipsContr.init();
    window.TipsContr=TipsContr;
    window.CupContr=CupContr;

    _root_.alpha=0;
    LayerMain=_root_;
    var robj={
      show:function(callback){
       // LGlobal.box2d.setEvent(LEvent.END_CONTACT,beginContact);
        LTweenLite.to(_root_,GameSettings.opening_animation_time,{alpha:1,onComplete:function(){
          if(callback){
            callback();
          }
        }});
      }

      ,start_game:function(){
        GameData.showAnimation=true;
        GameData.allowOpenCup=false;
        var _ex_time=3;
        _ex_time=_ex_time+GameData.stage;
        if(_ex_time>20){
          _ex_time=20;
        }
        var _speed=10;
        _speed=_speed-GameData.stage;
        if(_speed<1){
          _speed=1;
        }

        TipsContr.showStageTips(GameData.stage,function(){
          CupContr.start_game_exchange(_ex_time,_speed,{
            before_animating:function(){

            }
            //运行动画前的操作。
            ,when_over:function(){

              TipsContr.showChoose(function(){
                GameData.showAnimation=false;
                GameData.allowOpenCup=true;
              });
            }
            //动画结束的动作。
          });

        });
      }
    };

    return robj;
  }

</script>
</body>
</html>

下载地址

给位给点分我,穷啊。。。。

地址:
下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值