Exemplo n.º 1
0
 public void Draw()
 {
     if (SelectedObject != null)
     {
         manager.Game.RenderState.Cull         = false;
         manager.Game.RenderState.DepthEnabled = false;
         if (SelectedObject.RenderComponent.OutOfView(gameCamera))                 //TODO: This doesn't work entirely properly
         {
             //Render one of them fancy arrows
         }
         else
         {
             //Render the hud
             var vp          = gameCamera.ViewProjection;
             var translation = SelectedObject.GetTransform();
             //project centre point
             var projected = new Vector4(0, 0, 0, 1) * (translation * vp);
             projected  /= projected.W;
             projected.Z = 1f;
             //do translation
             var translateSelection = Matrix4.CreateTranslation(projected.X, projected.Y, projected.Z);
             //HACK: I don't think modifying the materials exactly is what I'm supposed to do.
             var gaugeMat = (BasicMaterial)UI_HUD_targetarrow;
             var boxMat   = (BasicMaterial)UI_HUD_targetingblue;
             gaugeMat.DtSampler = ResourceManager.WhiteTextureName;                   //HACK: Null texture is black
             boxMat.DtSampler   = ResourceManager.WhiteTextureName;                   //HACK: Null texture is black
             gaugeMat.Dc        = Color4.White;
             boxMat.Dc          = Color4.Green;
             reticle.Update(IdentityCamera.Instance, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0));
             reticle.Draw(manager.Game.RenderState, translateSelection, Lighting.Empty);
             //Hull Gauge
             gaugeMat.Dc = gauge.HullColor;
             reticle_health.Update(IdentityCamera.Instance, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0));
             reticle_health.Draw(manager.Game.RenderState, translateSelection, Lighting.Empty);
             //Shield Gauge
             gaugeMat.Dc = gauge.ShieldColor;
             reticle_shields.Update(IdentityCamera.Instance, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0));
             reticle_shields.Draw(manager.Game.RenderState, translateSelection, Lighting.Empty);
         }
         manager.Game.RenderState.DepthEnabled = true;
         manager.Game.RenderState.Cull         = true;
     }
     manager.Draw();
 }
Exemplo n.º 2
0
 public override void Draw(TimeSpan delta)
 {
     //Make sure delta time is normal
     if (dframes == 0)
     {
         dframes = 1;
         return;
     }
     //TODO: Draw background THN
     scene.Draw();
     //UI Background
     Game.Renderer2D.Start(Game.Width, Game.Height);
     Game.Renderer2D.DrawImageStretched(logoOverlay, new Rectangle(0, 0, Game.Width, Game.Height), Color4.White, true);
     Game.Renderer2D.Finish();
     //buttons
     manager.Draw();
     //Cursor
     Game.Renderer2D.Start(Game.Width, Game.Height);
     cur.Draw(Game.Renderer2D, Game.Mouse);
     Game.Renderer2D.Finish();
 }