示例#1
0
    public virtual void Update()
    {
        switch (state)
        {
        case ActionState.non:
            break;

        case ActionState.move:
            Move();
            break;

        case ActionState.atkbegin:

            if (target == null || target.IsDie())
            {
                parent.StopAction();
                return;
            }
            atkTime += Time.deltaTime;
            if (atkTime > (1 / parent.GetAtkSpeed()) * 0.5f)
            {
                Atk();
            }
            break;

        case ActionState.atkend:

            if (target == null || target.IsDie())
            {
                parent.StopAction();
                return;
            }

            atkTime += Time.deltaTime;
            if (atkTime >= (1 / parent.GetAtkSpeed()))
            {
                parent.SetAnimatorState(InGameBaseCharacter.AnimatorState.Idle, 1);
                if (atkTime >= (1 / parent.GetAtkSpeed()) * 1.1)
                {
                    StartAtk();
                }
            }
            break;
        }
    }
示例#2
0
    public void Update()
    {
        if (state == AIState.run)
        {
            //寻找敌人
            List <InGameBaseObj> objlist = InGameManager.GetInstance().inGameObjManager.objList;

            for (int i = 0; i < objlist.Count; i++)
            {
                if (objlist[i].GetObjType() != InGameBaseObj.enObjType.character)
                {
                    continue;
                }
                if (character.IsEnemy(objlist[i]))
                {
                    if (Vector2.Distance(objlist[i].transform.position, this.character.transform.position) < 4f)
                    {
                        character.StartAtk((InGameBaseCharacter)objlist[i]);
                        state     = AIState.atk;
                        fllowTime = 0f;
                        break;
                    }
                }
            }
        }
        else
        {
            if (character == null || character.actionManager.target == null || character.actionManager.target.IsDie())
            {
                state = AIState.run;
                character.StopAction();
                return;
            }

            fllowTime += Time.deltaTime;
            if (Vector2.Distance(character.actionManager.target.transform.position, this.character.transform.position) > 4f &&
                fllowTime > 5f)
            {
                state = AIState.run;
                //character.StopRun();
                character.StopAction();
                fllowTime = 0f;
            }
        }
    }
示例#3
0
    public override void HandleEvent(EventData resp)
    {
        switch (resp.eid)
        {
        case EventID.EVENT_TOUCH_SWEEP:

            EventTouch e = (EventTouch)resp;
            girl1.StartRun(Vector3.zero);
            break;

        case EventID.EVENT_TOUCH_UP:
            EventTouch eup = (EventTouch)resp;
            girl1.StopAction();
            break;
        }
    }