public void LoadTextureAtlas(string pkgName, string fileName)
        {
            try
            {
                //-- Load资源对象
                NResourceLoc loc = new NResourceLoc(pkgName, fileName);
                m_resource = NResourceManager.Instance.LoadTextureAtlas(loc,
                                                                        EResourceIOMode.Block, EResourceIOPriority.Normal);

                //-- Load贴图文件
                fileName = fileName.Replace(".txa", ".tga");//找到对应的贴图文件
                IntPtr hbmp = NLevelEditorEngine.Instance.LoadTextureAsBitmap(
                    new NResourceLoc(pkgName, fileName)
                    );

                //-- 更新控件显示
                Image img = Image.FromHbitmap(hbmp);
                m_imgSize = img.Size;
                this.pictureBoxMain.Image = img;

                //-- 显示Item List
                UpdateAtlasList();
            }
            catch (System.Exception e)
            {
                Program.ShowException(e, "Texture Atlas Load Failed");
            }
        }
        private void ReLoadTextures()
        {
            if (textureLoc != null &&
                textureLoc.IsValid() &&
                !string.IsNullOrEmpty(textureLoc.FileName) &&
                !string.IsNullOrEmpty(textureLoc.PackageName))
            {
                texture = NResourceManager.Instance.LoadResourceTexture2D(
                    textureLoc, EResourceIOMode.Auto, EResourceIOPriority.Normal);
            }
            else
            {
                Texture = null;
            }

            if (alphaMapLoc != null &&
                alphaMapLoc.IsValid() &&
                !string.IsNullOrEmpty(alphaMapLoc.FileName) &&
                !string.IsNullOrEmpty(alphaMapLoc.PackageName))
            {
                alphaMap = NResourceManager.Instance.LoadTextureAtlas(
                    alphaMapLoc, EResourceIOMode.Auto, EResourceIOPriority.Normal);

                if (alphaMap != null)
                {
                    NTexAtlasItem item = alphaMap.GetItem(alphaMapAtlasName);
                    alphaMapUVRect = new Rect(item.UVStart.x, item.UVStart.y, item.UVEnd.x, item.UVEnd.y);
                }
            }
            else
            {
                alphaMap = null;
            }
        }
 public new void Close()
 {
     if (m_resource != null)
     {
         m_resource.Dispose();
         m_resource = null;
     }
     m_finalClose = true;
     base.Close();
 }
Beispiel #4
0
        virtual protected void OnAltasItemChanged(GUIEventArgs gUIEventArgs)
        {
            NResourceTextureAtlas texAtlas = TextureAtlas;

            if (texAtlas != null)
            {
                NTexAtlasItem item = texAtlas.GetItem(atlasItemName);
                TextureUVRect = new Rect(item.UVStart.x, item.UVStart.y, item.UVEnd.x, item.UVEnd.y);

                if (AltasRectChanged != null)
                {
                    AltasRectChanged(this, new GUIEventArgs());
                }
            }

            if (AltasItemChanged != null)
            {
                AltasItemChanged(this, gUIEventArgs);
            }
        }
        public bool LoadFrame()
        {
            WindowCollection windowCollection = GameHelper.LoadUIForm(GUISystem.Instance.RootWindow, "content", "/ui/form/MiniMap.nui");

            if (windowCollection != null)
            {
                miniMap    = (Nexus.GUI.Widgets.UIShapedImageBox)GUISystem.Instance.RootWindow.FindChild("root/UIStaticImage1/UIShapedImageBox1", true);
                coordLabel = (Nexus.GUI.Widgets.UILabel)GUISystem.Instance.RootWindow.FindChild("root/UIStaticImage1/UILabel1", true);
                if (miniMap != null)
                {
                    miniMap.BackgroundRenderComp.ImageLocation = new NResourceLoc("content", "/minimap/minimap.dds");
                    miniMapSize = miniMap.BackgroundRenderComp.Texture.GetOriginalSize();
                    Vector2 center = new Vector2(miniMapSize.x * 0.5f, miniMapSize.y * 0.5f);
                    miniMap.BackgroundRenderComp.TextureRect = new Rect(center.x - minimapRange.x, center.y - minimapRange.y,
                                                                        center.x + minimapRange.x, center.y + minimapRange.y);
                    Vector3 scale = GameEngine.EngineInstance.CurrentLevel.NavigationMapScale;
                    sceneSize.x    = GameEngine.EngineInstance.CurrentLevel.NavigationMapWidth * scale.x;
                    sceneSize.y    = GameEngine.EngineInstance.CurrentLevel.NavigationMapHeight * scale.z;
                    minimapRatio.x = minimapRange.x * 2 / miniMap.Width.offest;
                    minimapRatio.y = minimapRange.y * 2 / miniMap.Height.offest;

                    Icons = NResourceManager.Instance.LoadTextureAtlas(new NResourceLoc("content", "/ui/texAtlas/content1.txa"), EResourceIOMode.Auto, EResourceIOPriority.Normal);
                    if (Icons == null)
                    {
                        return(false);
                    }

                    {
                        NTexAtlasItem item = Icons.GetItem("minimap_6");
                        playerIcon = new Rect(item.UVStart.x, item.UVStart.y, item.UVEnd.x, item.UVEnd.y);
                    }

                    {
                        NTexAtlasItem item = Icons.GetItem("minimap-5");
                        northIcon = new Rect(item.UVStart.x, item.UVStart.y, item.UVEnd.x, item.UVEnd.y);
                    }

                    {
                        NTexAtlasItem item = Icons.GetItem("minimap-5");
                        aroundRoleIcon = new Rect(item.UVStart.x, item.UVStart.y, item.UVEnd.x, item.UVEnd.y);
                    }
                    //------------------------------------------------------
                    miniMap.BackgroundRenderComp.OnRendering += this.OnDraw;

                    Window win = GUISystem.Instance.RootWindow.FindChild("root/UIStaticImage1/UIButton2", true);
                    if (win != null)
                    {
                        win.MouseClicked += this.ZoomIn;
                    }

                    win = GUISystem.Instance.RootWindow.FindChild("root/UIStaticImage1/UIButton3", true);
                    if (win != null)
                    {
                        win.MouseClicked += this.ZoomOut;
                    }

                    win = GUISystem.Instance.RootWindow.FindChild("root/UIStaticImage1/UIButton4", true);
                    if (win != null)
                    {
                        win.MouseClicked += this.OnMinsize;
                    }

                    win = GUISystem.Instance.RootWindow.FindChild("root/UIStaticImage1/UIButton5", true);
                    if (win != null)
                    {
                        win.MouseClicked += this.OnShowWorldMap;
                    }


                    // 添加测试用角色
                    RoleAround a = new RoleAround(1, RoleStandpoint.RoleFriendly); roleAround.Add(a);
                    RoleAround b = new RoleAround(2, RoleStandpoint.RoleNeutrally); roleAround.Add(b);
                    RoleAround c = new RoleAround(3, RoleStandpoint.RoleHostile); roleAround.Add(c);
                    a.Position = new Vector2(500, 400);
                    b.Position = new Vector2(450, 500);
                    c.Position = new Vector2(550, 450);
                }
            }

            return(windowCollection != null);
        }