Exemplo n.º 1
0
 public void RebuildSpriteList(bool first = false)
 {
     if (mSprite == null)
     {
         mSprite = GetComponent <QuadTexture4Ngui>();
     }
     mSpriteNames.Clear();
     if (first == false)
     {
         OnNormalAniFinished = null;
     }
     if (mSprite != null && mSprite.Atlas != null)
     {
         List <UISpriteData> sprites = mSprite.Atlas.spriteList;
         for (int i = 0, imax = sprites.Count; i < imax; ++i)
         {
             UISpriteData sprite = sprites[i];
             if (string.IsNullOrEmpty(namePrefix) || sprite.name.StartsWith(namePrefix))
             {
                 mSpriteNames.Add(sprite.name);
             }
         }
         if (mSpriteNames.Count != 0 && mSpriteNames[0].Contains("_"))
         {
             mSpriteNames.Sort(SortByName);
         }
     }
 }
Exemplo n.º 2
0
    void HitAni()
    {
        if (endAttack || canAttack == false)
        {
            return;
        }
        mHitDelta += RealTime.deltaTime;
        float rate = 1f / mFPS;

        if (rate < mHitDelta)
        {
            mHitDelta = (rate > 0f) ? mHitDelta - rate : 0f;
            if (curFps > 0)
            {
                curFps = 0;
                GetTransform().GetChild(0).localPosition = new Vector3(0.0f, 0.3f, 0.0f);
                QuadTexture4Ngui gui = GetTransform().GetChild(0).GetComponent <QuadTexture4Ngui>();
                gui.ScaleFactor = 0.5f;

                endAttack = true;
                canAttack = false;
            }
            else
            {
                GameObject bulletgo = (GameObject)GameObject.Instantiate(Resources.Load("cannonbullet"));

                CannonBullet bullet = bulletgo.GetComponent <CannonBullet>();
                Transform    gun    = GetTransform().GetChild(0);
                bulletgo.transform.position = GetTransform().position + GetTransform().forward * 0.6f;

                bullet.parent = this;

                bullet.Fire(curEnemy.GetTransform().gameObject);
                Vector3 dir = Vector3.back * moveDistance;
                GetTransform().GetChild(0).localPosition = new Vector3(dir.x, dir.y + 0.3f, dir.z);
                QuadTexture4Ngui gui = GetTransform().GetChild(0).GetComponent <QuadTexture4Ngui>();
                gui.ScaleFactor = scaleFactor;
                ++curFps;
            }
        }
    }
Exemplo n.º 3
0
 public void RebuildSpriteList(bool first = false)
 {
     if (mSptite == null)
         mSptite = GetComponent<QuadTexture4Ngui>();
     mSpriteNames.Clear();
     if (first == false)
         OnNormalAniFinished = null;
     if (mSptite != null && mSptite.Atlas != null)
     {
         List<UISpriteData> sprites = mSptite.Atlas.spriteList;//从mSptite.Atlas取出所有精灵对象
         for (int i = 0, imax = sprites.Count; i < imax; ++i)
         {
             UISpriteData sprite = sprites[i];
             if (string.IsNullOrEmpty(namePrefix) || sprite.name.StartsWith(namePrefix))
             {
                 mSpriteNames.Add(sprite.name);
             }
         }
         if (mSpriteNames.Count != 0 && mSpriteNames[0].Contains("_"))
             mSpriteNames.Sort(SortByName);
     }
 }
Exemplo n.º 4
0
    void ChangeAnim()
    {
        if (needChangeStatus == false)
        {
            return;
        }
        bool   needMirror = false;
        int    mfps       = 12;
        string namePrefix = "";
        bool   reverse    = false;

        if (rotateWeapon)
        {
            CancelInvoke("IdleChange");
        }
        if (mPose == Pose.Run)
        {
            namePrefix = "walk";
            if (mDir == Dir.RightDown)
            {
                namePrefix += "down";
            }
            else if (mDir == Dir.Right)
            {
                namePrefix += "right";
            }
            else if (mDir == Dir.RightUp)
            {
                namePrefix += "up";
            }
            else if (mDir == Dir.LeftDown)
            {
                namePrefix += "down";
                needMirror  = true;
            }
            else if (mDir == Dir.Left)
            {
                namePrefix += "right";
                needMirror  = true;
            }
            else if (mDir == Dir.LeftUp)
            {
                namePrefix += "up";
                needMirror  = true;
            }
        }
        else if (mPose == Pose.Idle)
        {
            if (rotateWeapon)
            {
                InvokeRepeating("IdleChange", 0f, 1.0f);
                mfps = 1;
            }
            else
            {
                namePrefix = "stand";
                if (mDir == Dir.RightDown)
                {
                    namePrefix += "down";
                }
                else if (mDir == Dir.Right)
                {
                    namePrefix += "right";
                }
                else if (mDir == Dir.RightUp)
                {
                    namePrefix += "up";
                }
                else if (mDir == Dir.LeftDown)
                {
                    namePrefix += "down";
                    needMirror  = true;
                }
                else if (mDir == Dir.Left)
                {
                    namePrefix += "right";
                    needMirror  = true;
                }
                else if (mDir == Dir.LeftUp)
                {
                    namePrefix += "up";
                    needMirror  = true;
                }
                mfps = 5;
            }
        }
        else if (mPose == Pose.Attack)
        {
            if (rotateWeapon)
            {
            }
            else
            {
                namePrefix = "attack";
                if (mDir == Dir.RightDown)
                {
                    namePrefix += "down";
                }
                else if (mDir == Dir.Right)
                {
                    namePrefix += "right";
                }
                else if (mDir == Dir.RightUp)
                {
                    namePrefix += "up";
                }
                else if (mDir == Dir.LeftDown)
                {
                    namePrefix += "down";
                    needMirror  = true;
                }
                else if (mDir == Dir.Left)
                {
                    namePrefix += "right";
                    needMirror  = true;
                }
                else if (mDir == Dir.LeftUp)
                {
                    namePrefix += "up";
                    needMirror  = true;
                }
                mfps = 6;
            }
        }
        else if (mPose == Pose.Summon)
        {
            namePrefix = "victory";
            if (mDir == Dir.RightDown)
            {
                namePrefix += "down";
            }
            else if (mDir == Dir.Right)
            {
                namePrefix += "right";
            }
            else if (mDir == Dir.RightUp)
            {
                namePrefix += "up";
            }
            else if (mDir == Dir.LeftDown)
            {
                namePrefix += "down";
                needMirror  = true;
            }
            else if (mDir == Dir.Left)
            {
                namePrefix += "right";
                needMirror  = true;
            }
            else if (mDir == Dir.LeftUp)
            {
                namePrefix += "up";
                needMirror  = true;
            }
            mfps = 6;
        }
        else if (mPose == Pose.Die)
        {
            namePrefix = "";
            QuadTextureAni ani1 = GetComponentInChildren <QuadTextureAni>();
            if (ani1 != null)
            {
                ani1.mActive = false;
            }
            transform.GetChild(0).localPosition = Vector3.zero;
            QuadTexture4Ngui tex = transform.GetChild(0).GetComponent <QuadTexture4Ngui>();
            tex.mSpriteName = "baseruins";
            tex.InitFace();
            transform.GetChild(0).gameObject.GetComponent <Renderer>().sortingOrder = -1;
            if (transform.childCount > 2)
            {
                transform.GetChild(2).gameObject.SetActive(false);
            }
        }
        QuadTextureAni ani = GetComponentInChildren <QuadTextureAni>();

        if (ani != null && namePrefix != "")
        {
            ani.namePrefix = namePrefix;
            ani.mFPS       = mfps;
            ani.RebuildSpriteList();
            ani.mirror = needMirror;
            if (mPose == Pose.Attack)
            {
                ani.OnNormalAniFinished += OnAttackEnd;
            }
        }
        needChangeStatus = false;
    }
Exemplo n.º 5
0
    void CheckDir()
    {
        if (gameObject == null)
        {
            return;
        }
        needChangeStatus = false;
        if (mDir != _CurDir)
        {
            //ChangeAnim();
            needChangeStatus = true;
            mDir             = _CurDir;
        }
        if (mPose != CurPose)
        {
            needChangeStatus = true;
            mPose            = CurPose;
        }
        Quaternion dir = gameObject.transform.localRotation;
        //Debug.Log ("curDir: " + dir.eulerAngles.y);
        float curAngle = dir.eulerAngles.y % 360.0f;

        curAngle = curAngle < 0.0f ? curAngle + 360.0f : curAngle;
        if (rotateWeapon && CurPose != Pose.Die)
        {
            QuadTexture4Ngui tex = transform.GetChild(0).GetComponent <QuadTexture4Ngui>();
            if ((curAngle >= 0.0f && curAngle <= 151f) || (curAngle > 321.0f))
            {
                int angle = ((int)(curAngle / 10.0f) * 10);

                tex.mSpriteName = "" + angle;
                tex.mirrorX     = false;
                tex.InitFace();
            }
            else if (curAngle > 151 && curAngle <= 301)
            {
                int angle = ((int)((301.0f - curAngle) / 10.0f) * 10);
                tex.mSpriteName = "" + angle;
                tex.mirrorX     = true;
                tex.InitFace();
            }
            else if (curAngle > 301 && curAngle <= 321)
            {
                int angle = ((int)((661.0f - curAngle) / 10.0f) * 10);
                tex.mSpriteName = "" + angle;
                tex.mirrorX     = true;
                tex.InitFace();
            }
        }
        else
        {
            if ((curAngle >= 0.0f && curAngle < 45.0f) || (curAngle > 315.0f && curAngle <= 360.0f))
            {
                _CurDir = Dir.RightUp;
            }
            else if (curAngle >= 270.0f && curAngle <= 315.0f)
            {
                _CurDir = Dir.LeftUp;
            }
            else if (curAngle >= 45.0f && curAngle < 90.0f)
            {
                _CurDir = Dir.Right;
            }
            else if (curAngle >= 180.0f && curAngle < 270.0f)
            {
                _CurDir = Dir.Left;
            }
            else if (curAngle >= 127.0f && curAngle < 180.0f)
            {
                _CurDir = Dir.LeftDown;
            }
            else if (curAngle >= 90.0f && curAngle < 127.0f)
            {
                _CurDir = Dir.RightDown;
            }
        }
    }