59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
|
using Microsoft.Xna.Framework;
|
|||
|
using Microsoft.Xna.Framework.Graphics;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace Jumpy {
|
|||
|
// TODO: add a WriteLine sort of functionality.
|
|||
|
static class Debug {
|
|||
|
struct DebugRect {
|
|||
|
public Rectangle rect;
|
|||
|
public Color color;
|
|||
|
|
|||
|
public DebugRect(Rectangle rect, Color color) {
|
|||
|
this.rect = rect;
|
|||
|
this.color = color;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static bool Enabled;
|
|||
|
static List<DebugRect> rects = new List<DebugRect>();
|
|||
|
static Texture2D whiteTexture;
|
|||
|
|
|||
|
|
|||
|
public static void Initialize(GraphicsDevice graphics) {
|
|||
|
whiteTexture = new Texture2D(graphics, 1, 1);
|
|||
|
whiteTexture.SetData(new Color[] { Color.White });
|
|||
|
}
|
|||
|
|
|||
|
public static void Clear() {
|
|||
|
rects.Clear();
|
|||
|
}
|
|||
|
|
|||
|
public static void AddRect(Rectangle rect, Color color) {
|
|||
|
rects.Add(new DebugRect(rect, color));
|
|||
|
}
|
|||
|
|
|||
|
public static void Draw(SpriteBatch spriteBatch) {
|
|||
|
if (!Enabled) {
|
|||
|
return;
|
|||
|
}
|
|||
|
foreach (var debugRect in rects) {
|
|||
|
var rect = debugRect.rect;
|
|||
|
var color = debugRect.color;
|
|||
|
// top side
|
|||
|
spriteBatch.Draw(
|
|||
|
whiteTexture, new Rectangle(rect.Left, rect.Top, rect.Width, 1), color);
|
|||
|
// bottom side
|
|||
|
spriteBatch.Draw(
|
|||
|
whiteTexture, new Rectangle(rect.Left, rect.Bottom - 1, rect.Width, 1), color);
|
|||
|
// left side
|
|||
|
spriteBatch.Draw(
|
|||
|
whiteTexture, new Rectangle(rect.Left, rect.Top, 1, rect.Height), color);
|
|||
|
// right side
|
|||
|
spriteBatch.Draw(
|
|||
|
whiteTexture, new Rectangle(rect.Right - 1, rect.Top, 1, rect.Height), color);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|