Пример #1
0
        private void addActorTypeMenu_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem item    = sender as ToolStripMenuItem;
            ObjectCreator     creator = item.Tag as ObjectCreator;

            if (creator != null)
            {
                try
                {
                    NCheckResult   hit;
                    NEMainViewport activeViewport = this.ActiveViewport;
                    if (activeViewport != null)
                    {
                        activeViewport.MouseRayCheck(out hit, activeViewport.RightMouseButtenDownPosition, 512 * 1024, LineCheckType.All);
                        Point        pt      = activeViewport.Viewport.Camera.WorldToScreen(hit.location);
                        ActorFactory factory = creator.CreateInstance() as ActorFactory;
                        factory.CreateActor(NLevelEditorEngine.Instance.MainLevel, hit.location, Vector3.Zero);
                    }
                }
                catch (System.Exception ex)
                {
                    Program.ShowException(ex, "ActorFactory Create Error!");
                }
            }
        }
Пример #2
0
 private void viewport_MouseClick(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Right)
     {
         NEMainViewport activeViewport = this.ActiveViewport;
         if (activeViewport != null &&
             NLevelEditorEngine.Instance.Command != EditorCommand.TerrainMode &&
             NLevelEditorEngine.Instance.Command != EditorCommand.NavigateMapMode &&
             activeViewport.RightMouseButtenDownPosition == e.Location)
         {
             this.contextMenuStripViewport.Show(activeViewport, e.Location);
         }
     }
 }
Пример #3
0
        /// <summary>
        /// play from here
        /// </summary>
        private void playFromHereToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 检测鼠标射线
            NCheckResult hit;

            hit.location = Vector3.Zero;
            NEMainViewport activeViewport = this.ActiveViewport;

            if (activeViewport != null)
            {
                activeViewport.MouseRayCheck(out hit, activeViewport.RightMouseButtenDownPosition, 1024 * 1024, LineCheckType.All);
            }

            PlayInEditor(hit.location);
        }
Пример #4
0
        /// <summary>
        /// 创建viewport窗口,因为创建窗口即刻需要渲染(Paint事件),所以独立成一个函数,在引擎和level创建后才调用。
        /// </summary>
        public void CreateViewport()
        {
            AutoViewportSize();

            List <NEMainViewport> vpList = new List <NEMainViewport>();
            NEMainViewport        vp1    = new NEMainViewport();

            vp1.SetCameraMode(EditorCameraMode.Top);
            this.splitContainerViewUp.Panel1.Controls.Add(vp1);
            vpList.Add(vp1);

            NEMainViewport vp2 = new NEMainViewport();

            vp2.SetCameraMode(EditorCameraMode.Front);
            this.splitContainerViewUp.Panel2.Controls.Add(vp2);
            vpList.Add(vp2);

            NEMainViewport vp3 = new NEMainViewport();

            vp3.SetCameraMode(EditorCameraMode.Side);
            this.splitContainerViewDown.Panel1.Controls.Add(vp3);
            vpList.Add(vp3);

            NEMainViewport vp4 = new NEMainViewport();

            vp4.SetCameraMode(EditorCameraMode.Perspective);
            this.splitContainerViewDown.Panel2.Controls.Add(vp4);
            vpList.Add(vp4);

            NLevelEditorEngine.Instance.ActorEd.ActorSelected
                += new EventHandler(this.ActorSelectedHandler);

            //--
            m_viewports = vpList;
            foreach (NEMainViewport vp in m_viewports)
            {
                vp.DoubleClick += new EventHandler(viewport_DoubleClick);
                vp.MouseClick  += this.viewport_MouseClick;
                vp.CameraOperateFactorChangeEvent += this.OnCameraOperateFactorChange;
            }

            if (m_viewports.Count > 0)
            {
                statusMainForm.Items[2].Text = "摄像机正常速度";
            }
        }
Пример #5
0
        private void toolBtnCamera_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                NEMainViewport activeVp = ActiveViewport;

                if (activeVp == null)
                {
                    NexusEditor.Program.ShowError("Not active viewport found.");
                    return;
                }

                using (EditorMain.CameraCtrlSettingDlg dlg = new CameraCtrlSettingDlg())
                {
                    dlg.SetCameraCtrl(activeVp.CameraCtrl);
                    dlg.ShowDialog(this);
                }
            }
        }