public HintShapeListener(FadeHint hint, bool onlyOnce, bool stopOnExitArea) { _hint = hint; _onlyOnce = onlyOnce; _stopOnExit = stopOnExitArea; _timesPlayed = 0; }
public void SpawnHint(FadeHint hint) { if (!_fadeHints.Contains(hint)) { _fadeHints.Add(hint); } }
public FadeHint SpawnHint(string text, Vector2 position, float fadeInTime, float fadeOutTime) { FadeHint hint = new FadeHint(text, position, fadeInTime, fadeOutTime); _fadeHints.Add(hint); hint.StartAsync(); return(hint); }
private void DrawScene(float dt) { if ((StateManager.Instance.CurrentGameState as BaseMenuGameState) != null) { Quad scquad = GetScreenQuad(); Material blur = Renderer.Instance.GetBlurMaterial(); blur.SetParameter("matWorldViewProj", Matrix.Identity); blur.SetParameter("ColorMap", MenuBackgroundTexture); blur.SetParameter("blurDistance", 0.01f); scquad.Draw(blur); } if (_sceneCameras.Count == 0) { return; } Platform.Instance.Device.BlendState = new BlendState(); Platform.Instance.Device.RasterizerState = RasterizerState.CullCounterClockwise; CameraAttachable currentCam = _sceneCameras[0]; Renderer.Instance.LoadMatrix(EMatrix.Projection, currentCam.GetPerspectiveMatrix()); Renderer.Instance.LoadMatrix(EMatrix.View, currentCam.GetViewMatrix()); Renderer.Instance.SetParameter("eyePosition", currentCam.Parent.GetPosition()); Renderer.Instance.SetParameter("lightPosition", _lightPosition); int culledCount = 0; foreach (var registeredNode in _registeredNodes) { Renderer.Instance.LoadMatrix(EMatrix.World, registeredNode.GetAbsoluteTransformation()); if (currentCam.GetFrustum().Contains(registeredNode.GetTransformedBoundingBox()) != ContainmentType.Disjoint && !registeredNode.Invisible) { Renderer.Instance.SetParameter("matWorld", Renderer.Instance.MatWorld); Renderer.Instance.SetParameter("matWorldInverseTranspose", Renderer.Instance.MatWorldInverseTranspose); Renderer.Instance.SetParameter("matWorldViewProj", Renderer.Instance.MatWorldViewProjection); foreach (var attachable in registeredNode.Attachable) { attachable.Render(dt); } } else { culledCount++; } } if (ShowDebugInfo) { string toShow = culledCount.ToString() + " objects culled out of " + _registeredNodes.Count + " objects\nFPS: " + (1000f / dt).ToString(); if (_hint == null) { _hint = HintManager.Instance.SpawnHint(toShow, new Vector2(600, 20), 200f, 2000f); } else { _hint.Text = toShow; HintManager.Instance.SpawnHint(_hint); } } if (!UsePostDraw) { return; } //post render foreach (var registeredNode in _registeredNodes) { Renderer.Instance.LoadMatrix(EMatrix.World, registeredNode.GetAbsoluteTransformation()); if (currentCam.GetFrustum().Contains(registeredNode.GetTransformedBoundingBox()) != ContainmentType.Disjoint && !registeredNode.Invisible) { Renderer.Instance.SetParameter("matWorld", Renderer.Instance.MatWorld); Renderer.Instance.SetParameter("matWorldInverseTranspose", Renderer.Instance.MatWorldInverseTranspose); Renderer.Instance.SetParameter("matWorldViewProj", Renderer.Instance.MatWorldViewProjection); foreach (var attachable in registeredNode.Attachable) { attachable.PostRender(dt); } } } }
public HintShapeListener(FadeHint hint, bool onlyOnce) : this(hint, onlyOnce, true) { }
public HintShapeListener(FadeHint hint) : this(hint, false, true) { }
public void RemoveHint(FadeHint hint) { _fadeHints.Remove(hint); }