/// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); mapGenerator.Draw(spriteBatch, debugMode); if (debugMode) { Texture2D tx = new Texture2D(GraphicsDevice, 1, 1, false, SurfaceFormat.Color); tx.SetData <Color>(new Color[] { Color.White }); spriteBatch.Draw(tx, player.Rectangle, Color.Green); spriteBatch.Draw(tx, player.HorizontalHitbox, Color.White); spriteBatch.Draw(tx, player.VerticalHitbox, Color.White); foreach (Plane pl in enemies) { spriteBatch.Draw(tx, pl.Rectangle, Color.Green); spriteBatch.Draw(tx, pl.HorizontalHitbox, Color.White); spriteBatch.Draw(tx, pl.VerticalHitbox, Color.White); } } foreach (Plane pl in enemies) { spriteBatch.Draw(pl.Texture, pl.Rectangle, Color.White); } spriteBatch.Draw(player.Texture, player.Rectangle, Color.White); foreach (Bullet bullet in player.Bullets) { spriteBatch.Draw(bullet.Texture, bullet.Rectangle, Color.Yellow); } //spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), new Rectangle(new Point(0, 0), new Point(graphics.GraphicsDevice.Viewport.Width, 25)), Color.Red); int distance = 0; foreach (Plane enemy in enemies) { foreach (Bullet bullet in player.Bullets) { distance = (int)Math.Sqrt(Math.Pow(bullet.Position.X - enemy.Center.X, 2) + Math.Pow(bullet.Position.Y - enemy.Center.Y, 2)); if (distance /*> Math.Sqrt(Math.Pow(bullet.Position.X - enemy.Position.X, 2) + Math.Pow(bullet.Position.Y - enemy.Position.Y, 2))*/ < 300 && bullet.Position.Y > enemy.Center.Y) { HelperClass.DrawLine(spriteBatch, HelperClass.GetTexture(spriteBatch), new Vector2(enemy.Center.X, enemy.Position.Y + enemy.Size.Y), bullet.Position, new Color(244, distance, 66)); //distance = (int)Math.Sqrt(Math.Pow(bullet.Position.X - enemy.Position.X, 2) + Math.Pow(bullet.Position.Y - enemy.Position.Y, 2)); } } } spriteBatch.End(); // TODO: Add your drawing code here base.Draw(gameTime); }
public void Draw(SpriteBatch spriteBatch, bool debugMode) { for (int i = 0; i < leftSide.Length; i++) //foreach(Rectangle rectangle in leftSide) { if (debugMode) { spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), leftSide[i], (i == lastRectangleIndex) ? Color.Yellow : (i == previous) ? Color.Red : Color.Green); spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), rightSide[i], (i == lastRectangleIndex) ? Color.Yellow : (i == previous) ? Color.Red : Color.Green); } else { spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), leftSide[i], Color.Green); spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), rightSide[i], Color.Green); } } }