Esempio n. 1
0
 /// <summary>
 /// 使用NUICanvas类绘图回调接口
 /// </summary>
 /// <param name="canvas"></param>
 public void DrawHud(NUICanvas canvas)
 {
     if (DamageListener != null)
     {
         DamageListener.DrawElement(canvas);
     }
 }
        /// <summary>
        /// 使用<see cref="NUICanvas"/>渲染2D界面
        /// </summary>
        /// <param name="Canvas"></param>
        override public void DrawWidgets(NUICanvas Canvas)
        {
            base.DrawWidgets(Canvas);

            Canvas.DrawString(m_defaultFont, m_debugString, 100, 100, new Color4f(1.0f, 0.5f, 1.0f, 0.7f));

            Canvas.DrawTexture(m_defaultTexture, new Rect(0, 0, 32 / 1024, 32 / 1024), new Rect(300, 300, 400, 400), new ColorRect(-1));
        }
        public void DrawElement(NUICanvas canvas)
        {
            if (font == null)
            {
                return;
            }

            foreach (var item in damageInfos)
            {
                Rect targetRC = new Rect(
                    item.ScreenPosition.x - item.InitSize.x * 0.5f,
                    item.ScreenPosition.y - item.InitSize.y * 0.5f,
                    item.ScreenPosition.x + item.InitSize.x * 0.5f,
                    item.ScreenPosition.y + item.InitSize.y * 0.5f);
                font.DrawString(item.DamageMessage, targetRC, item.ScreenPosition.z, item.Scale * (1.0f - item.ScreenPosition.w) * (1.0f - item.ScreenPosition.w), DrawTextFormat.Center, DefaultTextColor, DefaultShadowColor);
            }
        }
        /// <summary>
        /// 使用<see cref="NUICanvas"/>渲染2D界面
        /// </summary>
        /// <param name="Canvas"></param>
        virtual public void DrawWidgets(NUICanvas Canvas)
        {
            DrawDebugInfo(Canvas);

            // 渲染GUI
            GUISystem.Instance.RenderGUI();

            // 绘制当前选中控件的边框
            foreach (Window wnd in m_owner.CurrentSelectWindows)
            {
                Rect    drawRect    = wnd.Rect;
                Color4f selectColor = new Color4f(System.Drawing.Color.Red);
                Canvas.DrawLine(drawRect.left, drawRect.top, drawRect.right, drawRect.top, selectColor);
                Canvas.DrawLine(drawRect.left, drawRect.top, drawRect.left, drawRect.bottom, selectColor);
                Canvas.DrawLine(drawRect.right, drawRect.bottom, drawRect.right, drawRect.top, selectColor);
                Canvas.DrawLine(drawRect.right, drawRect.bottom, drawRect.left, drawRect.bottom, selectColor);
            }
        }
Esempio n. 5
0
        public GUISystem(NUICanvas renderer)
        {
            if (instance == null)
            {
                instance = this;

                // 初始化界面系统
                this.renderer = renderer;

                // 创建单件实例
                new WindowManager();
                new MouseCursor();

                ReloadStringDictionary();

                // 记录日志
                NLogger.Instance.WriteString(LogType.Info, "****** Nexus GUI System initialization. ******");
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 初始化GUI系统,在InitModules时调用
        /// </summary>
        private void InitGuiSystem()
        {
            NRenderResourceManager renderResMgr = NEngine.Instance().RenderResManager;

            guiCanvas = renderResMgr.NewUICanvas();

            // 创建UI系统
            new GUISystem(guiCanvas);

            //加载程序集,注册内置窗口类型
            Assembly executingAssembly = Assembly.GetExecutingAssembly();

            WindowManager.Instance.LoadAssembly(Path.GetDirectoryName(executingAssembly.Location) + System.IO.Path.DirectorySeparatorChar + @"Nexus.GUI.dll");
            // 加载当前执行文件中窗口类型
            WindowManager.Instance.AttachAssembly(executingAssembly);
            WindowManager.Instance.AttachAssembly(Assembly.GetEntryAssembly());
            // 创建一个缺省的唯一父窗口
            GUISystem.Instance.RootWindow = WindowManager.Instance.CreateWindow("Nexus.GUI.Widgets.GUISheet", GUISystem.DefaultRootWindowName, null);
        }
        public override void Draw(NRenderPrimitiveDrawInterface PDI)
        {
            foreach (GameViewportControl control in renderControls)
            {
                if (!control.Visible)
                {
                    continue;
                }

                NUICanvas guiCanvas = GameEngine.EngineInstance.GuiCanvas;
                if (guiCanvas != null)
                {
                    guiCanvas.Begin();
                    GameHud.Instance.DrawHud(guiCanvas);
                    control.DrawWidgets(guiCanvas);
                    guiCanvas.End();
                }
                GameHud.Instance.DrawHud(PDI);
                control.DrawWidgets(PDI);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// 使用<see cref="NUICanvas"/>渲染2D界面
 /// </summary>
 /// <param name="Canvas"></param>
 public virtual void DrawWidgets(NUICanvas canvas)
 {
     GUISystem.Instance.RenderGUI();
 }
 private void DrawDebugInfo(NUICanvas Canvas)
 {
 }
Esempio n. 10
0
        public NGUIWidgetsRender()
        {
            NRenderResourceManager renderResMgr = NEngine.Instance().RenderResManager;

            m_uiCanvas = renderResMgr.NewUICanvas();
        }