/// <summary> /// 帧更新接口 /// </summary> /// <param name="deltaTime"></param> public void Update(float deltaTime, NViewport view) { foreach (var frame in currentFrames) { frame.Update(deltaTime, view); } }
/// <summary> /// Update /// </summary> public void Update(float deltaTime, NViewport view) { if (DamageListener != null) { DamageListener.UpdateElement(deltaTime, view); } }
public void Update(float deltaTime, NViewport view) { // 更新进度条进度 if (prepareProgressBar.Visible && prepareMaxTime > 0.0f) { prepareTime -= deltaTime; prepareProgressBar.Progress = prepareTime / prepareMaxTime; } }
public void Update(float deltaTime, NViewport view) { //计算角色在小地图中的坐标 Vector3 pos = GameEngine.EngineInstance.LocalPlayer.Location; playerLocation2D = WorldToMiniMap(new Vector2(pos.x, pos.z)); Vector2 mapCenter = playerLocation2D; if (mapCenter.x < minimapRange.x) { mapCenter.x = minimapRange.x; } if (mapCenter.x > miniMapSize.x - minimapRange.x) { mapCenter.x = miniMapSize.x - minimapRange.x; } if (mapCenter.y < minimapRange.y) { mapCenter.y = minimapRange.y; } if (mapCenter.y > miniMapSize.y - minimapRange.y) { mapCenter.y = miniMapSize.y - minimapRange.y; } //改变小地图的显示范围 Rect rc = new Rect(mapCenter.x - minimapRange.x, mapCenter.y - minimapRange.y, mapCenter.x + minimapRange.x, mapCenter.y + minimapRange.y); miniMap.BackgroundRenderComp.TextureRect = rc; //旋转小地图 miniMap.BackgroundRenderComp.Rotation = GameEngine.EngineInstance.LocalPlayer.GameplayCamera.Yaw + (float)Math.PI; Rect mmrc = miniMap.BackgroundRenderComp.TargetRect; Matrix trans = Matrix.Translation(mmrc.left + mmrc.Width * 0.5f, mmrc.top + mmrc.Height * 0.5f, 0); Matrix invTrans = trans; invTrans.Invert(); miniMapRotation = Matrix.RotationAxis(new Vector3(0, 0, 1), miniMap.BackgroundRenderComp.Rotation); miniMapRotation = invTrans * miniMapRotation * trans; //显示当前坐标 if (coordLabel != null) { int x = (int)pos.x; int y = (int)pos.z; String text = x.ToString(); text += ","; text += y.ToString(); coordLabel.TextRenderComp.Text = text; } }
/// <summary> /// 逻辑层的Tick机会 /// </summary> /// <param name="gameTime"></param> public override void Update(float deltaTime, NViewport vp) { if (localPlayer != null) { localPlayer.Update(deltaTime, vp); } // 给所有的GameActor一次逻辑层更新机会 foreach (var item in remoteCCs) { item.Value.Update(deltaTime); } base.Update(deltaTime, vp); }
public void CreateViewport() { // initialize Viewport int w = NEditorEngine.Instance().Config.ClientWidth; int h = NEditorEngine.Instance().Config.ClientHeight; m_viewport = new NViewport(); m_viewport.Camera.SetPerspective(MathConst.PI / 4, w, h, 20, 500000); m_viewport.HandleWnd = this.Handle; m_viewport.RenderMode = ERenderMode.Unlit; this.NRenderContorl_SizeChanged(null, null); // create render element NWidgetsRender widgetsRender = new NWidgetsRender(); m_viewport.WidgetsRender = widgetsRender; widgetsRender.AddRenderControl(this); // 创建UI系统 new GUISystem(widgetsRender.UICanvas); // 签署事件 this.KeyDown += new System.Windows.Forms.KeyEventHandler(NRenderControl_KeyDown); this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(NRenderControl_KeyPress); this.KeyUp += new System.Windows.Forms.KeyEventHandler(NRenderControl_KeyUp); this.MouseClick += new System.Windows.Forms.MouseEventHandler(NRenderControl_MouseClick); this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(NRenderControl_MouseDoubleClick); this.MouseDown += new System.Windows.Forms.MouseEventHandler(NRenderControl_MouseDown); this.MouseUp += new System.Windows.Forms.MouseEventHandler(NRenderControl_MouseUp); this.MouseWheel += new System.Windows.Forms.MouseEventHandler(NRenderControl_MouseWheel); this.MouseMove += new System.Windows.Forms.MouseEventHandler(NRenderControl_MouseMove); //加载程序集,注册内置窗口类型 Assembly executingAssembly = Assembly.GetExecutingAssembly(); WindowManager.Instance.LoadAssembly(Path.GetDirectoryName(executingAssembly.Location) + System.IO.Path.DirectorySeparatorChar + @"Nexus.GUI.dll"); // 加载当前执行文件中窗口类型 WindowManager.Instance.AttachAssembly(executingAssembly); // 创建一个缺省的唯一父窗口 GUISystem.Instance.RootWindow = WindowManager.Instance.CreateWindow("Nexus.GUI.Widgets.GUISheet", "root", null); PostInitialize(); // create game timer m_gameTimer = new NGameTimer(); m_gameTimer.Reset(); }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } if (m_viewport != null) { m_viewport.Destroy(); m_viewport = null; } } base.Dispose(disposing); }
public void Update(float deltaTime, NViewport vp) { // 更新输入 PlayerInput.UpdateInput(deltaTime); PreProcessInput(PlayerInput, deltaTime); GameplayCamera.UpdateCamera(this, vp.Camera, deltaTime); foreach (var camera in CameraModifiers) { camera.UpdateCamera(this, vp.Camera, deltaTime); } PlayerMove(deltaTime, vp.Camera); Update(deltaTime); PlayerInput.ResetInput(); PressJump = false; }
public NEViewport() { m_view = new NViewport(); int w = NEditorEngine.Instance().Config.ClientWidth; int h = NEditorEngine.Instance().Config.ClientHeight; m_minCameraSight = 500; m_maxCameraSight = 300000; m_Sight = 0.25f; m_cameraSight = m_minCameraSight * (1 - m_Sight * m_Sight) + m_maxCameraSight * (m_Sight * m_Sight); m_view.Camera.SetPerspective(MathConst.PI / 4, w, h, 1.0f, m_cameraSight); m_cameraCtrl = new NPerspectiveCameraController(); InitializeComponent(); this.Dock = DockStyle.Fill; this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); m_view.HandleWnd = this.Handle; m_view.RenderMode = ERenderMode.Unlit; this.NEViewPort_SizeChanged(this, null); // set view pos/size NEWidgetsRender widgets = CreateWidgetsRender(); m_view.WidgetsRender = widgets; widgets.AddViewport(this); //-- context menu m_menu = new ContextMenuStrip(); ToolStripMenuItem viewMenu = new ToolStripMenuItem("Render mode"); foreach (ERenderMode rm in Enum.GetValues(typeof(ERenderMode))) { ToolStripItem item = viewMenu.DropDownItems.Add(rm.ToString()); item.Click += new EventHandler(this.OnMenuClickRenderMode); } m_menu.Items.Add(viewMenu); ToolStripItem cameraItem = m_menu.Items.Add("Reset camera"); //-- m_mainTimer = new NGameTimer(); m_mainTimer.Reset(); }
public void UpdateElement(float deltaTime, NViewport vp) { int index = damageInfos.FindLastIndex(x => (x.CountTime > DefaultShowInfoTime)); if (index >= 0) { damageInfos.RemoveRange(0, index + 1); } foreach (var item in damageInfos) { item.CountTime += deltaTime; // 更新屏幕位置 Vector4 screenLocation = vp.Camera.WorldToScreenWithDepth(item.TargetCC.Location); screenLocation.x += item.CountTime * item.CountTime * DefaultMovement.x; screenLocation.y += item.CountTime * item.CountTime * DefaultMovement.y; item.ScreenPosition = screenLocation; } }
public void Update(float deltaTime, NViewport view) { }
public void Update(float deltaTime, NViewport view) { UpdateMessageTipsStatck(deltaTime); }