Compare commits
2 Commits
fb3538cea9
...
63a2645814
Author | SHA1 | Date | |
---|---|---|---|
63a2645814 | |||
7625339d4c |
@ -1,6 +1,7 @@
|
|||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace SemiColinGames {
|
namespace SemiColinGames {
|
||||||
public static class Debug {
|
public static class Debug {
|
||||||
@ -37,7 +38,7 @@ namespace SemiColinGames {
|
|||||||
static VertexPositionColor[] lineVertices;
|
static VertexPositionColor[] lineVertices;
|
||||||
static VertexBuffer vertexBuffer;
|
static VertexBuffer vertexBuffer;
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void Initialize(GraphicsDevice graphics) {
|
public static void Initialize(GraphicsDevice graphics) {
|
||||||
lineVertices = new VertexPositionColor[MAX_LINE_VERTICES];
|
lineVertices = new VertexPositionColor[MAX_LINE_VERTICES];
|
||||||
vertexBuffer?.Dispose();
|
vertexBuffer?.Dispose();
|
||||||
@ -45,17 +46,17 @@ namespace SemiColinGames {
|
|||||||
graphics, typeof(VertexPositionColor), MAX_LINE_VERTICES, BufferUsage.WriteOnly);
|
graphics, typeof(VertexPositionColor), MAX_LINE_VERTICES, BufferUsage.WriteOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void WriteLine(string s) {
|
public static void WriteLine(string s) {
|
||||||
System.Diagnostics.Debug.WriteLine(s);
|
System.Diagnostics.Debug.WriteLine(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void WriteLine(string s, params object[] args) {
|
public static void WriteLine(string s, params object[] args) {
|
||||||
System.Diagnostics.Debug.WriteLine(s, args);
|
System.Diagnostics.Debug.WriteLine(s, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void Clear(bool paused) {
|
public static void Clear(bool paused) {
|
||||||
toasts.Clear();
|
toasts.Clear();
|
||||||
if (!paused) {
|
if (!paused) {
|
||||||
@ -63,18 +64,18 @@ namespace SemiColinGames {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddToast(string s) {
|
public static void AddToast(string s) {
|
||||||
toasts.AddLast(s);
|
toasts.AddLast(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FPS text is always displayed as the first toast (if set).
|
// FPS text is always displayed as the first toast (if set).
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void SetFpsText(string s) {
|
public static void SetFpsText(string s) {
|
||||||
toasts.AddFirst(s);
|
toasts.AddFirst(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddRect(Rectangle rect, Color color) {
|
public static void AddRect(Rectangle rect, Color color) {
|
||||||
AddLine(rect.Left, rect.Top + 1, rect.Right, rect.Top + 1, color);
|
AddLine(rect.Left, rect.Top + 1, rect.Right, rect.Top + 1, color);
|
||||||
AddLine(rect.Left + 1, rect.Top + 1, rect.Left + 1, rect.Bottom, color);
|
AddLine(rect.Left + 1, rect.Top + 1, rect.Left + 1, rect.Bottom, color);
|
||||||
@ -82,7 +83,7 @@ namespace SemiColinGames {
|
|||||||
AddLine(rect.Left + 1, rect.Bottom, rect.Right, rect.Bottom, color);
|
AddLine(rect.Left + 1, rect.Bottom, rect.Right, rect.Bottom, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddRect(AABB box, Color color) {
|
public static void AddRect(AABB box, Color color) {
|
||||||
Rectangle rect = new Rectangle(
|
Rectangle rect = new Rectangle(
|
||||||
(int) (box.Position.X - box.HalfSize.X), (int) (box.Position.Y - box.HalfSize.Y),
|
(int) (box.Position.X - box.HalfSize.X), (int) (box.Position.Y - box.HalfSize.Y),
|
||||||
@ -90,13 +91,13 @@ namespace SemiColinGames {
|
|||||||
AddRect(rect, color);
|
AddRect(rect, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddPoint(Point p, Color color) {
|
public static void AddPoint(Point p, Color color) {
|
||||||
AddLine(p.X, p.Y - 2, p.X, p.Y + 1, color);
|
AddLine(p.X, p.Y - 2, p.X, p.Y + 1, color);
|
||||||
AddLine(p.X - 2, p.Y, p.X + 1, p.Y, color);
|
AddLine(p.X - 2, p.Y, p.X + 1, p.Y, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddLine(int p1x, int p1y, int p2x, int p2y, Color color) {
|
public static void AddLine(int p1x, int p1y, int p2x, int p2y, Color color) {
|
||||||
if (lineIdx >= MAX_LINE_VERTICES) {
|
if (lineIdx >= MAX_LINE_VERTICES) {
|
||||||
return;
|
return;
|
||||||
@ -106,17 +107,17 @@ namespace SemiColinGames {
|
|||||||
lineIdx += 2;
|
lineIdx += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddLine(Point start, Point end, Color color) {
|
public static void AddLine(Point start, Point end, Color color) {
|
||||||
AddLine(start.X, start.Y, end.X, end.Y, color);
|
AddLine(start.X, start.Y, end.X, end.Y, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void AddLine(Vector2 start, Vector2 end, Color color) {
|
public static void AddLine(Vector2 start, Vector2 end, Color color) {
|
||||||
AddLine(start.ToPoint(), end.ToPoint(), color);
|
AddLine(start.ToPoint(), end.ToPoint(), color);
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void DrawToasts(SpriteBatch spriteBatch) {
|
public static void DrawToasts(SpriteBatch spriteBatch) {
|
||||||
if (!Enabled) {
|
if (!Enabled) {
|
||||||
return;
|
return;
|
||||||
@ -132,7 +133,7 @@ namespace SemiColinGames {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Diagnostics.Conditional("DEBUG")]
|
[Conditional("DEBUG")]
|
||||||
public static void Draw(GraphicsDevice graphics, BasicEffect lightingEffect) {
|
public static void Draw(GraphicsDevice graphics, BasicEffect lightingEffect) {
|
||||||
if (!Enabled) {
|
if (!Enabled) {
|
||||||
return;
|
return;
|
||||||
|
@ -51,6 +51,7 @@ namespace SemiColinGames {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This creates and populates a new array. It's O(n) and should probably only be used for tests.
|
// This creates and populates a new array. It's O(n) and should probably only be used for tests.
|
||||||
|
// TODO: restrict visibility so that it can only be used by tests.
|
||||||
public T[] ToArray() {
|
public T[] ToArray() {
|
||||||
T[] result = new T[items.Length];
|
T[] result = new T[items.Length];
|
||||||
for (int i = 0; i < items.Length; i++) {
|
for (int i = 0; i < items.Length; i++) {
|
||||||
|
@ -22,6 +22,7 @@ namespace SemiColinGames {
|
|||||||
int errorXY; // Error value e_xy from the PDF.
|
int errorXY; // Error value e_xy from the PDF.
|
||||||
// The size of the output is the size of the longer dimension, plus one.
|
// The size of the output is the size of the longer dimension, plus one.
|
||||||
int resultSize = Math.Max(dx, -dy) + 1;
|
int resultSize = Math.Max(dx, -dy) + 1;
|
||||||
|
// TODO: an array or list should be passed in by the caller.
|
||||||
var result = new Point[resultSize];
|
var result = new Point[resultSize];
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -83,6 +83,8 @@ namespace SemiColinGames {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool harmedByCollision = false;
|
bool harmedByCollision = false;
|
||||||
|
// TODO: pass in movePoints to Line.Rasterize instead of having that function allocate a
|
||||||
|
// new array.
|
||||||
Point[] movePoints = Line.Rasterize(0, 0, (int) movement.X, (int) movement.Y);
|
Point[] movePoints = Line.Rasterize(0, 0, (int) movement.X, (int) movement.Y);
|
||||||
for (int i = 1; i < movePoints.Length; i++) {
|
for (int i = 1; i < movePoints.Length; i++) {
|
||||||
int dx = movePoints[i].X - movePoints[i - 1].X;
|
int dx = movePoints[i].X - movePoints[i - 1].X;
|
||||||
|
@ -29,6 +29,7 @@ namespace SemiColinGames {
|
|||||||
histogram[bucket]++;
|
histogram[bucket]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Conditional("DEBUG")]
|
||||||
public void DumpStats() {
|
public void DumpStats() {
|
||||||
Debug.WriteLine(name + ".DumpStats():");
|
Debug.WriteLine(name + ".DumpStats():");
|
||||||
for (int i = 0; i < histogram.Length; i++) {
|
for (int i = 0; i < histogram.Length; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user