nothing fancy, just pretty useful. nothing none of you couldn’t have written yourselves, but perhaps you didn’t think of this
this just opens a simple Frame and displays some info. it can be used instead of a debugger to display information and is far better than System.out.println().
i couldn’t be bothered to fiddle with the debugger in Eclipse so i wrote this instead since i needed to display lots of information at the same time.
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.util.Vector;
public class DebugWindow extends Frame {
private Vector values;
public DebugWindow(int width, int height) {
super("DebugWindow");
setSize(width, height);
values = new Vector();
show();
}
public void addValue(String s, double val) {
values.add(s + " " + val);
}
public void display() {
Graphics g = getGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.BLACK);
for (int i = 0; i < values.size(); i++)
g.drawString((String) values.get(i), 5, 35 + i * 15);
values.clear();
}
}
this is how it’s used:
- in the constructor of some object, like a sprite for instance, create an instance:
DebugWindow debugWindow = new DebugWindow(200, 200);
- somewhere in your code add the following (just an example):
debugWindow.addValue("lateralForceFront", lateralForceFront);
debugWindow.addValue("pos x", x);
debugWindow.addValue("pos y", y);
debugWindow.addValue("speed", speed);
debugWindow.display();
a good place to add this is something that’s called every loop, say move() or performGameTick() or whatever you call it. you get the idea.