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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 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:
1. in the constructor of some object, like a sprite for instance, create an instance:
1
| DebugWindow debugWindow = new DebugWindow(200, 200); |
2. somewhere in your code add the following (just an example):
1 2 3 4 5
| 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.