Skip to main content

FlixelDebugTrackerEntry

View source

class

org.flixelgdx.debug.FlixelDebugTrackerEntry

public abstract class FlixelDebugTrackerEntry

Abstract base for custom entries shown in the debug overlay's Tracker panel.

Each entry contributes a named, collapsible group of label -> value pairs (rendered like the Watch panel, but grouped under your entry's name). It is the right tool for a tidy, always-current dump of related values, such as an inventory, an AI state machine, or a table of spawn weights, that would be hard to read as a flood of Flixel.info log lines.

To keep the overlay allocation-free, hold a single reusable ObjectMap as a field and return it from FlixelDebugTrackerEntry.getTrackedValues(), only updating its values in place each frame. Keep the same set of keys between frames so the panel's row order stays stable. Register instances via FlixelDebugManager.addTrackerEntry(FlixelDebugTrackerEntry) (for example Flixel.debug.addTrackerEntry(...)).

Example usage:

public class EnemyTrackerEntry extends FlixelDebugTrackerEntry {

private final EnemyManager manager;
// Reuse one map; we only update its values each frame, never reallocate it.
private final ObjectMap<String, String> values = new ObjectMap<>();

public EnemyTrackerEntry(EnemyManager manager) {
super("Enemies");
this.manager = manager;
}

@Override
public ObjectMap<String, String> getTrackedValues() {
values.put("Alive", String.valueOf(manager.getAliveCount()));
values.put("Pooled", String.valueOf(manager.getPooledCount()));
return values;
}
}

// Register it once, for example in your state's create():
Flixel.debug.addTrackerEntry(new EnemyTrackerEntry(enemyManager));

Constructors

FlixelDebugTrackerEntry(String)

protected FlixelDebugTrackerEntry(String name)

Parameters:

NameDescription
nameA short display name for this entry (shown as the collapsible header in the Tracker panel).

Methods

getName()

public String getName()

Returns the display name of this tracker entry.


getTrackedValues()

public ObjectMap<String,String> getTrackedValues()

Called by the debug overlay (on its refresh interval) to retrieve the label -> value pairs this entry wants to display. Return an empty map to hide the entry temporarily.

Prefer returning a single reused ObjectMap field whose values you update in place, rather than allocating a new map each call. This keeps the debugger free of per-frame garbage.

Returns: The label-to-value map to display, never null.