Exemplo n.º 1
0
    void RefreshPallet()
    {
        SpriteRenderer r = this.SpriteRender;

        if (r == null)
        {
            return;
        }
        Material mat = r.sharedMaterial;

        if (mat == null)
        {
            return;
        }

        var imageRes = StageMgr.GetInstance().ImageRes;

        if (imageRes != null && imageRes.LoadOk)
        {
            var frame = imageRes.GetImageFrame((PlayerState)m_Group, m_Image);
            if (frame != null)
            {
                StageMgr.GetInstance().LinkImageFramePalletLastLink(frame);
                var palletTex = frame.LocalPalletTex;
                mat.SetTexture("_PalletTex", palletTex);
                m_IsPalletNull = palletTex == null;
            }
        }
    }
Exemplo n.º 2
0
    public void InitStatic(BgStaticInfo bgInfo)
    {
        if (bgInfo == null)
        {
            return;
        }
        layerno = bgInfo.layerno;

        var imageRes = StageMgr.GetInstance().ImageRes;

        if (imageRes != null && imageRes.LoadOk)
        {
            m_Group     = bgInfo.srpiteno_Group;
            m_Image     = bgInfo.spriteno_Image;
            m_MaskType  = bgInfo.mask;
            m_SceneType = SceneLayerType.Static;
            m_TransType = bgInfo.transType;
            InitSpriteRender(bgInfo.transType);

            var frame = imageRes.GetImageFrame((PlayerState)bgInfo.srpiteno_Group, bgInfo.spriteno_Image);
            UpdateImageFrame(frame, ActionFlip.afNone, ActionDrawMode.adNone, bgInfo.mask == MaskType.none);


            m_IsInited = true;
        }
    }
Exemplo n.º 3
0
    public void InitAnimated(BgAniInfo anInfo)
    {
        if (anInfo == null)
        {
            return;
        }
        layerno = anInfo.layerno;
        var imageRes = StageMgr.GetInstance().ImageRes;

        if (imageRes != null && imageRes.LoadOk)
        {
            // 处理动画层
            m_Group    = anInfo.actionno;
            m_MaskType = anInfo.mask;

            m_SceneType = SceneLayerType.Animation;
            m_TransType = anInfo.transType;
            InitSpriteRender(anInfo.transType);
            m_IsInited = true;

            if (StageMgr.GetInstance().HasBeginAction(m_Group))
            {
                // 初始化动画
                var ani = this.ImageAni;
                if (ani != null)
                {
                    ani.Type = ImageAnimation.ImageAnimationType.Scene;
                    if (ani.PlayerPlayerAni((PlayerState)m_Group, true))
                    {
                        RefreshCurFrame(ani);
                    }
                }
            }
        }
    }
Exemplo n.º 4
0
    void UpdateMove(float deltaTime)
    {
        if (Mathf.Abs(Vec.x) <= float.Epsilon && Mathf.Abs(Vec.y) <= float.Epsilon)
        {
            if (m_Display == null || m_Display.Attribe.StandType != Cns_Type.A)
            {
                return;
            }
        }
        // 按照毫秒算速度
        float d = deltaTime * 1000f;

        if (m_Display != null && m_Display.Attribe.StandType == Cns_Type.A)
        {
            float gg = (-g + A.y) / (PlayerDisplay._cVelPerUnit * PlayerDisplay._cAPerUnit);
            //float gg = -g/1000000f * 6.5f;
            Vec.y += gg * d;
        }

        float   Ax = IsFlipX ? -A.x: A.x;
        Vector2 vv = new Vector2(Vec.x * (IsFlipX? -1:1), Vec.y);

        if (m_Display != null && m_Display.Attribe.StandType != Cns_Type.A &&
            (Mathf.Abs(vv.x) > float.Epsilon || Mathf.Abs(Ax) > float.Epsilon))
        {
            float oldVx = vv.x;
            // 动态摩擦因子
            float u = AppConfig.GetInstance().u *StageMgr.GetInstance().u;
            // 摩擦力的向下地面fn
            float aX = u / 100f * g;
            if (vv.x > 0)
            {
                aX = -aX;
            }
            aX  += Ax;
            vv.x = aX * deltaTime + vv.x;
            if (oldVx * vv.x < 0)
            {
                vv.x = 0;
            }
        }

        Vector2 org = this.OffsetPos;

        org += vv * d;
        if (org.y < 0)
        {
            //Vec.y = 0;
            org.y = 0;
        }
        this.OffsetPos = org;
        if (m_Display != null)
        {
            m_Display.InternalUpdatePos();
            //Debug.LogError (m_Display.transform.localPosition.z.ToString ());
        }
    }
Exemplo n.º 5
0
    public bool HasImage(PlayerState group, int index)
    {
        if (group == PlayerState.psNone)
        {
            return(false);
        }

        if (Type == ImageAnimationType.Player)
        {
            PlayerDisplay displayer = this.CacheDisplayer;
            if (displayer == null)
            {
                return(false);
            }
            var loaderPlayer = displayer.LoaderPlayer;
            if (loaderPlayer == null)
            {
                return(false);
            }
            var imgRes = loaderPlayer.ImageRes;
            if (imgRes == null)
            {
                return(false);
            }
            var imgLib = imgRes.ImgLib;
            if (imgLib == null)
            {
                imgRes.Init();
                imgLib = imgRes.ImgLib;
                if (imgLib == null)
                {
                    return(false);
                }
            }

            var frame = imgLib.GetImageFrame(group, index);
            if (frame != null && frame.Data != null)
            {
                return(true);
            }
        }
        else if (Type == ImageAnimationType.Scene)
        {
            var frame = StageMgr.GetInstance().ImageRes.GetImageFrame(group, index);
            if (frame != null && frame.Data != null)
            {
                return(true);
            }
        }

        return(false);
    }
Exemplo n.º 6
0
    internal bool SetStateFrameList(PlayerState state)
    {
        if (Type == ImageAnimationType.Player)
        {
            PlayerDisplay displayer = this.CacheDisplayer;
            if (displayer == null)
            {
                return(false);
            }

            var loaderPlayer = displayer.LoaderPlayer;
            if (loaderPlayer == null)
            {
                return(false);
            }

            var imgRes = loaderPlayer.ImageRes;
            if (imgRes == null)
            {
                return(false);
            }

            var imgLib = imgRes.ImgLib;
            if (imgLib == null)
            {
                imgRes.Init();
                imgLib = imgRes.ImgLib;
                if (imgLib == null)
                {
                    return(false);
                }
            }
            m_FrameList = imgLib.GetAnimationNodeList(state);
            return(true);
        }
        else if (Type == ImageAnimationType.Scene)
        {
            m_FrameList = StageMgr.GetInstance().ImageRes.GetAnimationNodeList(state);
            return(true);
        }
        else
        {
            return(false);
        }
    }
Exemplo n.º 7
0
    public void InitStatic(BgStaticInfo bgInfo)
    {
        if (bgInfo == null)
        {
            return;
        }
        layerno = bgInfo.layerno;

        var imageRes = StageMgr.GetInstance().ImageRes;

        if (imageRes != null && imageRes.LoadOk)
        {
            var frame = imageRes.GetImageFrame((PlayerState)bgInfo.srpiteno_Group, bgInfo.spriteno_Image);
            UpdateImageFrame(bgInfo.srpiteno_Group, frame);
            m_Group    = bgInfo.srpiteno_Group;
            m_Image    = bgInfo.spriteno_Image;
            m_IsInited = true;
        }
    }
Exemplo n.º 8
0
    public ImageFrame GetImageFrame(int group, int image)
    {
        if (Type == ImageAnimationType.Player)
        {
            PlayerDisplay displayer = this.CacheDisplayer;
            if (displayer == null)
            {
                return(null);
            }
            var loaderPlayer = displayer.LoaderPlayer;
            if (loaderPlayer == null)
            {
                return(null);
            }
            var imgRes = loaderPlayer.ImageRes;
            if (imgRes == null)
            {
                return(null);
            }
            var imgLib = imgRes.ImgLib;
            if (imgLib == null)
            {
                imgRes.Init();
                imgLib = imgRes.ImgLib;
                if (imgLib == null)
                {
                    return(null);
                }
            }

            return(imgLib.GetImageFrame((PlayerState)group, image));
        }
        else if (Type == ImageAnimationType.Scene)
        {
            return(StageMgr.GetInstance().ImageRes.GetImageFrame((PlayerState)group, image));
        }
        else
        {
            return(null);
        }
    }
Exemplo n.º 9
0
    private void UpdateImageFrame(int group, ImageFrame frame)
    {
        SpriteRenderer r = this.SpriteRender;

        if (r == null)
        {
            return;
        }

        if (frame == null)
        {
            r.sprite = null;
            var m1 = r.sharedMaterial;
            if (m1 != null)
            {
                m1.SetTexture("_PalletTex", null);
                m1.SetTexture("_MainTex", null);
                m_IsPalletNull = true;
            }
            return;
        }

        var flip = ActionFlip.afNone;

        r.sprite = frame.Data;
        if (r.sprite != null)
        {
            Transform  trans = r.transform;
            Quaternion quat  = trans.localRotation;
            switch (flip)
            {
            case ActionFlip.afH:
                quat.eulerAngles += new Vector3(0, 180, 0);
                break;

            case ActionFlip.afV:
                quat.eulerAngles += new Vector3(180, 0, 0);
                break;

            case ActionFlip.afHV:
                quat.eulerAngles += new Vector3(180, 180, 0);
                break;

            default:
                quat.eulerAngles = Vector3.zero;
                break;
            }

            trans.localRotation = quat;
        }

        Material mat = r.sharedMaterial;

        if (mat != null)
        {
            var palletTex = frame.LocalPalletTex;
            if (palletTex == null)
            {
                string sceneFileName = StageMgr.GetInstance().LoadedSceneFileName;
                // 再尝试额外加载一个文件
                if (frame.LoadSceneExtLocalPalletTex(sceneFileName, group))
                {
                    palletTex = frame.LocalPalletTex;
                    // int saveGroup = (int)ImageLibrary.SceneGroupToSaveGroup(group);
                    //  StageMgr.GetInstance().SetLastPalletLink(saveGroup, frame.Image);
                    StageMgr.GetInstance().SetLastPalletLink(group, frame.Image);
                }
                else
                {
                    StageMgr.GetInstance().LinkImageFramePalletLastLink(frame);
                    palletTex = frame.LocalPalletTex;
                }
            }
            mat.SetTexture("_PalletTex", palletTex);
            mat.SetTexture("_MainTex", frame.Data.texture);
            m_IsPalletNull = palletTex == null;
        }
    }
Exemplo n.º 10
0
    public void SwitchPlayer(InputPlayerType playerType, PlayerDisplay display)
    {
        float x = 0f;

        switch (playerType)
        {
        case InputPlayerType._1p:
            m_1P = display;
            x    = 100.0f;
            break;

        case InputPlayerType._2p:
            m_2P = display;
            x    = ((float)Screen.width) - 100.0f;
            if (m_2P != null)
            {
                m_2P.IsFlipX = true;
            }
            break;

        case InputPlayerType._3p:
            m_3P = display;
            x    = 0f;
            break;

        case InputPlayerType._4p:
            m_4P = display;
            x    = 0f;
            break;

        case InputPlayerType._5p:
            m_5P = display;
            x    = 0f;
            break;

        case InputPlayerType._6p:
            m_6P = display;
            x    = 0f;
            break;

        case InputPlayerType._7p:
            m_7P = display;
            x    = 0f;
            break;

        case InputPlayerType._8p:
            m_8P = display;
            x    = 0f;
            break;

        case InputPlayerType._9p:
            m_9P = display;
            x    = 0f;
            break;

        case InputPlayerType._10p:
            m_10P = display;
            x     = 0f;
            break;

        case InputPlayerType._11p:
            m_11P = display;
            x     = 0f;
            break;

        case InputPlayerType._12p:
            m_12P = display;
            x     = 0f;
            break;
        }

        var cam = AppConfig.GetInstance().m_Camera;

        if (display != null && cam != null)
        {
            var     stage = StageMgr.GetInstance();
            Vector2 stayPos;
            if (stage.GetStayPos(playerType, out stayPos))
            {
                var pt = cam.ScreenToWorldPoint(new Vector3(stayPos.x, stayPos.y, 0));
                display.m_OffsetPos.x = pt.x;
                //display.m_OffsetPos.y = pt.y - 0.5f;
            }
            else
            {
                var pt = cam.ScreenToWorldPoint(new Vector3(x, 0, 0));
                display.m_OffsetPos.x = pt.x;
            }
            display.InternalUpdatePos();
        }

        if (display != null)
        {
            display.SwitchPallet((int)playerType - 1);
        }

        if (display != null && display.AnimationState == PlayerState.psNone)
        {
            if (display.LuaPly == null)
            {
                display.PlayAni(PlayerState.psStand1);
            }
        }
    }