Esempio n. 1
0
    void triggerFunc(MGNotification notification)
    {
        Debug.Log("triggerFunc");

        if (notification.objc is Collider2D)//自己要做的
        {
            Collider2D other = notification.objc as Collider2D;
            danDart();
            GameObject objc = GameObject.Find(other.name);
            if (objc)
            {
                int boneMask   = objc.GetComponent <Jump>().stateMask & roleState.bone;
                int sprintMask = objc.GetComponent <Jump>().stateMask & roleState.sprint;
                if (boneMask != 0 || sprintMask != 0)
                {
                    return;
                }
            }

            MGMsgModel skillModel = new MGMsgModel();
            skillModel.eventId        = SkillEffectEnum.dart;
            skillModel.gameobjectName = other.name;
            //发送给自己
            MGNotificationCenter.defaultCenter().postNotification(SkillEffectEnum.dart, skillModel);
        }
        else if (notification.objc is MGMsgModel)//对面要做的
        {
            //MGMsgModel other = notification.objc as MGMsgModel;
            danDart();
        }
    }
Esempio n. 2
0
    public void gameTimer()
    {
        MGGlobalDataCenter.defaultCenter().totalGameTime -= 0.01f;
        int frontNum = (int)Math.Floor(MGGlobalDataCenter.defaultCenter().totalGameTime);
        int laterNum = (int)((MGGlobalDataCenter.defaultCenter().totalGameTime - frontNum) * 100);

        if (MGGlobalDataCenter.defaultCenter().totalGameTime <= 0f)
        {
            CancelInvoke("gameTimer");
            //游戏结束
            if (GameObject.Find("role").GetComponent <RoleAnimController>().isDead || GameObject.Find("role1").GetComponent <RoleAnimController>().isDead)
            {
                return;
            }
            MGGlobalDataCenter.defaultCenter().overSenceUIName = "victoryFrontGameUI";
            Application.LoadLevel("overSence");
            MGMsgModel gameoverModel = new MGMsgModel();
            gameoverModel.eventId        = RoleActEventEnum.gameoverEventId;
            gameoverModel.gameobjectName = MGGlobalDataCenter.defaultCenter().overSenceUIName;
            mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(gameoverModel));
            return;
        }
        if (laterNum < 10)
        {
            gameTimerLabel.GetComponent <UILabel>().text = frontNum + ":0" + laterNum;
        }
        else
        {
            gameTimerLabel.GetComponent <UILabel>().text = frontNum + ":" + laterNum;
        }
    }
Esempio n. 3
0
    void sprintEffect(MGNotification notification)
    {
        if (notification != null)
        {
            sprintSwitch = notification;
            MGMsgModel skillModel = (MGMsgModel)notification.objc;
            GameObject objc       = GameObject.Find(skillModel.gameobjectName);
            if (objc)
            {
                if (tempObjcet == null)
                {
                    tempObjcet = GameObject.Find("sprint(Clone)");
                }
                float dis = MGGlobalDataCenter.defaultCenter().roleFrontPos.x - MGGlobalDataCenter.defaultCenter().roleLaterPos.x;
                objc.transform.Translate(speedSwitch * Vector3.right * MGSkillSprintInfo.SkillEffectSpeed * dis * Time.deltaTime / MGSkillSprintInfo.durationTime);
                if (tempObjcet)
                {
                    int fx = objc.transform.localScale.y > 0?1:-1;
                    tempObjcet.transform.position = new Vector3(objc.transform.position.x + 0.25f, objc.transform.position.y + fx * objc.GetComponent <SpriteRenderer>().bounds.size.y / 2f, objc.transform.position.z);
                }
            }
            sprintTimer += Time.deltaTime;
            if (sprintTimer > MGSkillSprintInfo.durationTime)
            {
                //修改背景的移动速度
                GameObject[] backgroundList = GameObject.FindGameObjectsWithTag("Background");
                for (int i = 0; i < backgroundList.Length; ++i)
                {
                    backgroundList[i].GetComponent <bgnear>().speed -= 20;
                }
                backgroundList = GameObject.FindGameObjectsWithTag("Road");
                for (int i = 0; i < backgroundList.Length; ++i)
                {
                    backgroundList[i].GetComponent <bgnear>().speed -= 20;
                }

                objc.GetComponent <RoleAnimController>().isSprint = false;
                objc.GetComponent <Animator>().SetBool("sprint", false);
                objc.GetComponent <SpriteRenderer>().material = new Material(Shader.Find("Sprites/Default"));
                UILabel label = GameObject.Find("log").GetComponent <UIInput>().label;
                Vector3 pos1  = GameObject.Find("role1").transform.position;
                Vector3 pos   = GameObject.Find("role").transform.position;
                label.text  += "\r\nrole.x=" + pos.x + ";role1.x=" + pos1.x;
                sprintTimer  = 0;
                sprintSwitch = null;
                tempObjcet   = null;
                GameObject sprint = GameObject.Find("sprint(Clone)");
                if (sprint != null)
                {
                    Destroy(sprint);
                }
                objc.GetComponent <Jump>().stateMask &= ~roleState.sprint;
            }
        }
    }
Esempio n. 4
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (MGGlobalDataCenter.defaultCenter().isFrontRoler == true || MGGlobalDataCenter.defaultCenter().isSingle)
     {
         MGMsgModel model = new MGMsgModel();
         model.eventId = SkillEnum.roadblock + gameObject.name;
         model.tag     = other.tag;
         model.name    = other.name;
         MGNotificationCenter.defaultCenter().postNotification(SkillEnum.roadblock + gameObject.name, other);
         mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(model));
     }
 }
Esempio n. 5
0
    public void gameOver()
    {
        Vector3 roleLaterPos = Vector3.zero;
        Vector3 roleFrontPos = Vector3.zero;

        try
        {
            roleLaterPos = MGGlobalDataCenter.defaultCenter().roleLater.transform.position;
            roleFrontPos = MGGlobalDataCenter.defaultCenter().role.transform.position;
        }
        catch
        {
            return;
        }

        if (roleFrontPos.x - roleLaterPos.x < 1.0f || isCollisionOver)        //后者追上前者结束
        {
            GameObject.Find("MGSkillEffect").GetComponent <MGSkillEffect>().speedSwitch = 0;
            MGGlobalDataCenter.defaultCenter().roleLater.GetComponent <Jump>().stateMask |= roleState.wudi;

            //MGGlobalDataCenter.defaultCenter().isGameOver = true;
            MGGlobalDataCenter.defaultCenter().roleLater.rigidbody2D.velocity = Vector3.zero;
            MGGlobalDataCenter.defaultCenter().role.rigidbody2D.velocity = Vector3.zero;
            //强制roleLater出现在role的后面一点点。

            roleLaterPos.x = roleFrontPos.x - 0.95f;
            roleLaterPos.y = roleFrontPos.y = MGGlobalDataCenter.defaultCenter().roadOrignY;
            MGGlobalDataCenter.defaultCenter().roleLater.transform.position = roleLaterPos;
            MGGlobalDataCenter.defaultCenter().roleLater.transform.localScale = new Vector3(1, 1, 1);
            MGGlobalDataCenter.defaultCenter().roleLater.transform.rotation = Quaternion.Euler(0, 0, 0);
            MGGlobalDataCenter.defaultCenter().role.transform.position = roleFrontPos;
            MGGlobalDataCenter.defaultCenter().role.transform.localScale = new Vector3(1, 1, 1);
            MGGlobalDataCenter.defaultCenter().role.transform.rotation = Quaternion.Euler(0, 0, 0);

            if (this.gameObject.name == "role1")
            {
                MGNotificationCenter.defaultCenter().postNotification(RoleButtonEvent.killLatterEventId, this.gameObject.name);
            }
        }
        if (this.gameObject.name == "role1" && transform.position.x + 1.4f < MGGlobalDataCenter.defaultCenter().screenLiftX)        //后者出屏幕结束,还有一个后者死掉结束在RoleAnimController里
        {
            MGGlobalDataCenter.defaultCenter().isGameOver = true;
            //切换场景
            Debug.Log("role1 out of screen");
            MGGlobalDataCenter.defaultCenter().overSenceUIName = "victoryFrontGameUI";
            Application.LoadLevel("overSence");
            MGMsgModel gameoverModel = new MGMsgModel();
            gameoverModel.eventId        = RoleActEventEnum.gameoverEventId;
            gameoverModel.gameobjectName = MGGlobalDataCenter.defaultCenter().overSenceUIName;
            mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(gameoverModel));
        }
    }
Esempio n. 6
0
 void dartEffect(MGNotification notification)
 {
     if (notification != null)
     {
         MGMsgModel skillModel = (MGMsgModel)notification.objc;
         GameObject objc       = GameObject.Find(skillModel.gameobjectName);
         float      dis        = MGGlobalDataCenter.defaultCenter().roleFrontPos.x - MGGlobalDataCenter.defaultCenter().roleLaterPos.x;
         if (objc && (objc.GetComponent <Jump>().stateMask & roleState.wudi) == 0)
         {
             objc.transform.Translate(Vector3.left * MGSkillDartInfo.SkillEffectSpeed * dis);
         }
     }
 }
Esempio n. 7
0
    public string objcToJson(string msg)
    {
        //log.label.text+="jump send:" + MGGlobalDataCenter.timestamp ()+"\r\n";
        MGMsgModel msgModel = new MGMsgModel();

        if (MGGlobalDataCenter.defaultCenter().isFrontRoler == true)
        {
            msgModel.eventId = msg;
        }
        else
        {
            msgModel.eventId = "1" + msg;
        }
        return(JsonMapper.ToJson(msgModel));
    }
Esempio n. 8
0
    public void receiverMessageFromPeer(string msg)
    {
        //Debug.Log ("receiverMessageFromPeer:"+msg+";"+MGGlobalDataCenter.timestamp());
        MGMsgModel msgModel = JsonMapper.ToObject <MGMsgModel>(msg);

        if (msgModel.eventId == RoleActEventEnum.gameoverEventId)
        {
            MGGlobalDataCenter.defaultCenter().overSenceUIName = msgModel.gameobjectName;
            if (Application.loadedLevelName != "overSence")
            {
                Application.LoadLevel("overSence");
            }
            return;
        }
        MGNotificationCenter.defaultCenter().postNotification(msgModel.eventId, msgModel);
    }
Esempio n. 9
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.name == "role1")
     {
         print("技能名:击退。被击中的是" + other.name + ",释放技能的是" + this.releaseSkillObjectName + ";gameobjc:" + other.gameObject);
         //MGGlobalDataCenter.defaultCenter().isBigSkilling = false;
         //被大招击中的声音和 金钟罩撞路障声音一致
         MGGlobalDataCenter.defaultCenter().isRoadBlockDefence = true;
         UILabel label = GameObject.Find("log").GetComponent <UIInput>().label;
         label.text += "\r\n Skill:" + other.name;
         //发送给自己
         MGMsgModel skillModel = new MGMsgModel();
         skillModel.eventId        = SkillEffectEnum.beatback;
         skillModel.gameobjectName = other.name;
         MGNotificationCenter.defaultCenter().postNotification(SkillEffectEnum.beatback, skillModel);
     }
 }
Esempio n. 10
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.tag != "Player" || other.name == releaseSkillObjectName)
     {
         return;
     }
     if (MGGlobalDataCenter.defaultCenter().isFrontRoler == true || MGGlobalDataCenter.defaultCenter().isSingle)
     {
         Debug.Log("OnTriggerEnter2D dart");
         MGMsgModel model = new MGMsgModel();
         model.eventId = SkillEnum.dart + gameObject.name;
         model.tag     = other.tag;
         model.name    = other.name;
         MGNotificationCenter.defaultCenter().postNotification(SkillEnum.dart + gameObject.name, other);
         mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(model));
     }
 }
Esempio n. 11
0
    public void continueGame(GameObject button)
    {
        if (MGGlobalDataCenter.defaultCenter().isStop == true)
        {
            if (button)
            {
                MGMsgModel uiMsg = new MGMsgModel();
                uiMsg.eventId = uiEvent.continueGame;
                mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(uiMsg));
            }

            MGGlobalDataCenter.defaultCenter().isStop = false;
            Time.timeScale = 1;
            DestroyObject(stopLayerObj);
            DestroyObject(homeButtonObj);
            DestroyObject(continueButtonObj);
        }
    }
Esempio n. 12
0
 public override void playSkillAnimation()
 {
     base.playSkillAnimation();
     transform.Translate(Vector3.left * speed * Time.deltaTime);
     if (isBlinked == false)//通知技能效果类执行相应的效果
     {
         isBlinked = true;
         MGMsgModel skillModel = new MGMsgModel();
         skillModel.eventId        = SkillEffectEnum.blink;
         skillModel.gameobjectName = "role1";
         //发送给对面 产生技能效果
         if (MGGlobalDataCenter.defaultCenter().isFrontRoler == false || MGGlobalDataCenter.defaultCenter().isSingle)
         {
             Debug.Log("发送给对面 产生技能效果");
             MGNotificationCenter.defaultCenter().postNotification(SkillEffectEnum.blink, skillModel);
             mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(skillModel));
         }
     }
 }
Esempio n. 13
0
 void roadblockEffect(MGNotification notification)
 {
     if (notification != null)
     {
         roadblockSwitch = notification;
         MGMsgModel skillModel = (MGMsgModel)notification.objc;
         GameObject objc       = GameObject.Find(skillModel.gameobjectName);
         float      dis        = MGGlobalDataCenter.defaultCenter().roleFrontPos.x - MGGlobalDataCenter.defaultCenter().roleLaterPos.x;
         if (objc && (objc.GetComponent <Jump>().stateMask & roleState.wudi) == 0)
         {
             objc.transform.Translate(Vector3.left * MGSkillRoadblockInfo.SkillEffectSpeed * dis * Time.deltaTime / MGSkillRoadblockInfo.durationTime);
         }
         roadblockTimer += Time.deltaTime;
         if (roadblockTimer > MGSkillRoadblockInfo.durationTime * Time.timeScale)
         {
             roadblockTimer  = 0;
             roadblockSwitch = null;
         }
     }
 }
Esempio n. 14
0
    void blinkEffect(MGNotification notification)
    {
        if (notification != null)
        {
            blinkSkillBonesTimer = 0;
            if (MGGlobalDataCenter.defaultCenter().isFrontRoler == false && MGGlobalDataCenter.defaultCenter().isSingle == false)
            {
                MGNotificationCenter.defaultCenter().postNotification(SkillActEventEnum.bones, shortBonesName);//发送bones技能的事件
                return;
            }

            MGMsgModel skillModel = (MGMsgModel)notification.objc;
            Debug.Log("skillModel:" + skillModel + ",eventId:" + skillModel.eventId + ",gameobjectName:" + skillModel.gameobjectName);
            GameObject objc = GameObject.Find(skillModel.gameobjectName);
            if (objc)
            {
                Debug.Log("blinkObjc:" + objc + "name:" + objc.name);
                float   dis          = MGGlobalDataCenter.defaultCenter().roleFrontPos.x - MGGlobalDataCenter.defaultCenter().roleLaterPos.x;
                Vector3 roleLaterPos = MGGlobalDataCenter.defaultCenter().roleLater.transform.position;
                Vector3 roleFrontPos = MGGlobalDataCenter.defaultCenter().role.transform.position;
                if (roleFrontPos.x - roleLaterPos.x < MGSkillBlinkInfo.SkillEffectSpeed * dis)
                {
                    objc.transform.Translate(Vector3.right * (roleFrontPos.x - roleLaterPos.x - 1f));
                }
                else
                {
                    objc.transform.Translate(Vector3.right * MGSkillBlinkInfo.SkillEffectSpeed * dis);
                }
            }

            MGNotificationCenter.defaultCenter().postNotification(SkillActEventEnum.bones, shortBonesName);//发送bones技能的事件

            UILabel label = GameObject.Find("log").GetComponent <UIInput> ().label;
            Vector3 pos1  = GameObject.Find("role1").transform.position;
            Vector3 pos   = GameObject.Find("role").transform.position;
            label.text += "\r\nrole.x=" + pos.x + ";role1.x=" + pos1.x + ";shortBonesName:" + shortBonesName;
        }
    }
Esempio n. 15
0
    public void clickStop(GameObject button)
    {
        if (MGGlobalDataCenter.defaultCenter().isStop == false)
        {
            if (button)
            {
                MGMsgModel uiMsg = new MGMsgModel();
                uiMsg.eventId = uiEvent.stopGame;
                mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(uiMsg));
            }

            MGGlobalDataCenter.defaultCenter().isStop = true;
            Time.timeScale = 0;

            stopLayerObj      = createOneUI(stopLayer, Vector3.zero);
            continueButtonObj = createOneUI(continueButton, Vector3.zero);
            continueButtonObj.GetComponent <UISprite>().depth = 3;
            UIEventListener.Get(continueButtonObj).onClick    = continueGame;
            homeButtonObj = createOneUI(homeButton, new Vector3(MGGlobalDataCenter.defaultCenter().screenLiftX + MGGlobalDataCenter.defaultCenter().NGUI_ButtonWidth / 2 + 0.3f, MGGlobalDataCenter.defaultCenter().screenBottomY + MGGlobalDataCenter.defaultCenter().NGUI_ButtonWidth / 2 + 0.3f, 0f));
            homeButtonObj.GetComponent <UISprite>().depth = 3;
            UIEventListener.Get(homeButtonObj).onClick    = homeClick;
        }
    }
Esempio n. 16
0
    public void triggerFunc(MGNotification notification)
    {
        string tag = null, name = null;

        if (notification.objc is Collider2D)//自己要做的
        {
            tag  = (notification.objc as Collider2D).tag;
            name = (notification.objc as Collider2D).name;
        }
        else if (notification.objc is MGMsgModel)//对面要做的
        {
            tag  = (notification.objc as MGMsgModel).tag;
            name = (notification.objc as MGMsgModel).name;
        }
        //Debug.Log(tag + ";" + name);
        if (isBreak)
        {
            return;
        }
        if (name == "bones(Clone)" || name == "sprint(Clone)")
        {
            //Debug.Log("roadblock break");
            isBreak = true;
            try
            {
                this.GetComponent <Animator>().SetBool("isBreak", true);
            }
            catch { }
        }
        if (tag != "Player")
        {
            return;
        }
        if (name != releaseSkillObjectName)
        {
            string strrole = "role";
            int    irole   = strrole.Length;
            if (name.Length >= irole && name.Substring(0, irole) == strrole)
            {
                MGGlobalDataCenter.defaultCenter().isRoadBlockHit = true;
            }
            else
            {
                MGGlobalDataCenter.defaultCenter().isRoadBlockDefence = true;
            }
            //print("技能名:路障。被打中的是" + name + ",释放技能的是" + releaseSkillObjectName);
            isBreak = true;
            try{
                this.GetComponent <Animator>().SetBool("isBreak", true);
            }catch {}

            MGNotificationCenter.defaultCenter().postNotification(RoleButtonEvent.killAnimLatterEventId, name);

            GameObject objc = GameObject.Find(name);
            if (objc)
            {
                int boneMask   = objc.GetComponent <Jump>().stateMask & roleState.bone;
                int sprintMask = objc.GetComponent <Jump>().stateMask & roleState.sprint;
                if (boneMask != 0 || sprintMask != 0)
                {
                    return;
                }
            }

            if (notification.objc is Collider2D)
            {
                MGMsgModel skillModel = new MGMsgModel();
                skillModel.eventId        = SkillEffectEnum.roadblock;
                skillModel.gameobjectName = name;
                //发送给自己
                MGNotificationCenter.defaultCenter().postNotification(SkillEffectEnum.roadblock, skillModel);
            }
        }
    }
Esempio n. 17
0
    // Update is called once per frame
    void Update()
    {
        if (isCallChangeKillFlag)
        {
            isKillRoadblock      = false;
            isCallChangeKillFlag = false;
        }
        //检测角色的动作
        if (isDead)//死亡导致结束
        {
            //Debug.Log("out of left moving:"+this.gameObject.name);
            if (transform.position.x > MGGlobalDataCenter.defaultCenter().screenLiftX - 1f && transform.position.y > MGGlobalDataCenter.defaultCenter().screenBottomY - 1f)
            {
                //Debug.Log("left moving:"+this.gameObject.name);
                transform.Translate(Vector3.left * 4 * Time.deltaTime);
            }
            else
            {
                isDead = false;
                if (this.gameObject.name == "role")
                {
                    MGGlobalDataCenter.defaultCenter().overSenceUIName = "failFrontGameUI";
                    MGGlobalDataCenter.defaultCenter().isDefeat        = true;
                }
                else if (this.gameObject.name == "role1")
                {
                    MGGlobalDataCenter.defaultCenter().overSenceUIName = "victoryFrontGameUI";
                    MGGlobalDataCenter.defaultCenter().isVictory       = true;
                }
                print("win=" + MGGlobalDataCenter.defaultCenter().isVictory +
                      "defeated=" + MGGlobalDataCenter.defaultCenter().isDefeat);
                Application.LoadLevel("overSence");
                MGMsgModel gameoverModel = new MGMsgModel();
                gameoverModel.eventId        = RoleActEventEnum.gameoverEventId;
                gameoverModel.gameobjectName = MGGlobalDataCenter.defaultCenter().overSenceUIName;
                jumpSprict.mgNetWorking.sendMessageToPeer(JsonMapper.ToJson(gameoverModel));
            }
            return;
        }
        //动作切换
        //通过速度判断是否下落,下落有2中情况,正常下落和加速下落 对应不同动画,前提条件是必须在空中,否则isRollBack表示上下翻滚。
        if (isPressDown && isFirstJump)//加速下落,切换到翻滚动作
        {
            //Debug.Log("切换加速下落动画");
            rigidbody2D.gravityScale = 10f;//保证加速下落过程中的重力
            if (MGGlobalDataCenter.defaultCenter().roadOrignY - transform.position.y >= 0)
            {
                Debug.Log("pressDown过程中接触地面");
                isSecondJump             = false;
                rigidbody2D.gravityScale = 0f;
                rigidbody2D.velocity     = Vector3.zero;
                transform.Translate(Vector3.down * this.GetComponent <SpriteRenderer>().sprite.bounds.size.y *Time.deltaTime / rollDuration);
                isPressDownToGround = true;
                isRoll     = true;
                rollTimer += Time.deltaTime;
            }
            if (isPressDownToGround && isChangeDownOrUp)//如果接触地面 且切换了方向 则切换到上下翻滚判断逻辑
            {
                //Debug.Log("接触地面后切换方向");
                isFirstJump              = false;
                isPressDownToGround      = false;
                rigidbody2D.gravityScale = 0.0f;
                rigidbody2D.velocity     = Vector3.zero;
            }
            //判断翻滚是否结束
            else if (transform.position.y < MGGlobalDataCenter.defaultCenter().roadOrignY&& Mathf.Abs(MGGlobalDataCenter.defaultCenter().roadOrignY - transform.position.y) > this.GetComponent <SpriteRenderer>().sprite.bounds.size.y)
            {
                //Debug.Log("MGGlobalDataCenter.defaultCenter().roadOrignY" + MGGlobalDataCenter.defaultCenter().roadOrignY);
                //Debug.Log("transform.position.y" + transform.position.y);
                //Debug.Log("this.GetComponent<SpriteRenderer>().sprite.bounds.size.y" + this.GetComponent<SpriteRenderer>().sprite.bounds.size.y);
                //Debug.Log("加速下翻动作完成");
                toNomalRun();
                changeRollBackState();
            }
        }
        if (!isPressDown && isFirstJump && player.velocity.y <= -0.1f)
        {
            if (isSecondJump == false && isFirstJump == true)//正常下落
            {
                //Debug.Log("一段跳后切换正常下落动画");
                isFallDown = true;
                setAllAnimStateToFalse();
                animStateToFallDown();
            }
            else if (isSecondJump == true && player.velocity.y < -8f)
            {
                //Debug.Log("二段跳后切换正常下落动画");
                isFallDown = true;
                setAllAnimStateToFalse();
                animStateToFallDown();
            }
        }
        //正常下落后回到地面需要切换回正常动画
        if (this.GetComponent <Jump>().isGround == true && isFirstJump && !isPressDown)
        {
            //Debug.Log("切换回正常动画");
            toNomalRun();
            animStateToRun();
        }

        //说明正在上下翻滚
        if (isRoll == true && !isFirstJump)
        {
            //Debug.Log("正在上下翻滚:" + rollTimer);
            //判断翻滚是否结束
            float dis = this.GetComponent <SpriteRenderer>().sprite.bounds.size.y;
            rollTimer += Time.deltaTime;
            if (isChangeDownOrUp)//是否在翻滚过程中切换了方向
            {
                isChangeDownOrUp = false;
                rollTimer        = rollDuration - rollTimer;
            }
            if (rollTimer >= rollDuration)
            {
                changeRollBackState();
            }
            else
            {
                if (downOrUp)//正在下落
                {
                    transform.Translate(Vector3.down * dis * Time.deltaTime / rollDuration);
                }
                else//正在上翻
                {
                    transform.Translate(Vector3.up * dis * Time.deltaTime / rollDuration);
                }
            }
        }
    }
Esempio n. 18
0
    // Update is called once per frame
    void Update()
    {
        playSkillAnimation();
        if (!isEndedFreeze)
        {
            timer += Time.deltaTime;
            int length = wordDelayTimeArrayList.Length;
            for (int i = length - 1; i >= 0; --i)
            {
                //Debug.Log("time=" + timer.ToString() + ";wordDelayTimeArrayList[i]=" + wordDelayTimeArrayList[i]);
                int isInstance = (wordMask >> i) & 1;
                if (isInstance == 0 && timer >= wordDelayTimeArrayList[i])
                {
                    //出现一个字
                    Debug.Log("此处应该出现一个字:" + wordSpriteArrayList[i]);
                    wordMask += 1 << i;
                    GameObject oneWord = GameObject.Instantiate(this.wordSprite) as GameObject;
                    oneWord.transform.parent     = this.plane.transform;
                    oneWord.transform.position   = wordPosArrayList[i];
                    oneWord.transform.rotation   = Quaternion.Euler(0, 0, 0);
                    oneWord.transform.localScale = new Vector3(0.5f, 1f, 1f);
                    oneWord.layer = bigSkillPlaneLayer;
                    oneWord.GetComponent <SpriteRenderer>().sortingLayerID = 3;
                    oneWord.GetComponent <SpriteRenderer>().sprite         = wordSpriteArrayList[i];
                    break;
                }
            }
            if (timer >= duration)
            {
                GameObject roleLater = GameObject.Find("role1");
                roleLater.GetComponent <RoleAnimController>().isSprint = true;
                roleLater.GetComponent <RoleAnimController>().setAllAnimStateToFalse();
                roleLater.GetComponent <Animator>().SetBool("sprint", true);
                roleLater.GetComponent <SpriteRenderer>().material = new Material(Shader.Find("long/sprint"));
                GameObject[] backgroundList = GameObject.FindGameObjectsWithTag("Background");
                MGGlobalDataCenter.defaultCenter().isRun = true;
                for (int i = 0; i < backgroundList.Length; ++i)
                {
                    backgroundList[i].GetComponent <bgnear>().speed += 20;
                }
                backgroundList = GameObject.FindGameObjectsWithTag("Road");
                for (int i = 0; i < backgroundList.Length; ++i)
                {
                    backgroundList[i].GetComponent <bgnear>().speed += 20;
                }

                MGMsgModel skillModel = new MGMsgModel();
                skillModel.eventId        = SkillEffectEnum.sprint;
                skillModel.gameobjectName = this.releaseSkillObjectName;
                //发送给自己
                MGNotificationCenter.defaultCenter().postNotification(SkillEffectEnum.sprint, skillModel);


                UILabel label = GameObject.Find("log").GetComponent <UIInput>().label;
                label.text    += "\r\nsprint end";
                isEndedFreeze  = true;
                Time.timeScale = 1f;
                GameObject releaseRole = GameObject.Find("role1");
                releaseRole.layer     = 9;//gamelayer
                this.gameObject.layer = 9;
                MGGlobalDataCenter.defaultCenter().isBigSkilling = false;
                Destroy(this.m_cloneCamera);
            }
        }
    }