debuglayer can visualize mouse clicks

This commit is contained in:
2025-12-30 13:58:15 -07:00
parent a1432867e7
commit d15c3d92d4

View File

@@ -25,9 +25,42 @@ class DebugLayer extends FlxTypedGroup<FlxSprite> {
add(canvas);
}
// Set this radius > 0 to automatically show an expanding circle on mouse click.
public var showClickRadius = 0;
private var elapsedShowClick = [];
private var showClickPos = [];
private var showClickSprites = [];
public var showClickTime = 0.33;
public var showClickColor = FlxColor.LIME;
public var showClickThickness = 3.0;
public var angularVelocity(default, default):Int = 0;
public var timeToDisappear(default, default):Float = -1;
public override function update(elapsed:Float) {
// Draw expanding circles when the mouse is clicked
if (showClickRadius > 0) {
if (FlxG.mouse.justPressed) {
elapsedShowClick.push(0.0);
showClickPos.push(FlxG.mouse.getWorldPosition(thisCamera()));
}
for (idx in 0...elapsedShowClick.length) {
var idx = elapsedShowClick.length - 1 - idx;
remove(showClickSprites[idx], true);
elapsedShowClick[idx] += elapsed;
if (elapsedShowClick[idx] > showClickTime){
elapsedShowClick.splice(idx,1);
showClickPos.splice(idx,1);
showClickSprites.splice(idx, 1);
}
else {
var pos = showClickPos[idx];
var elapsed = elapsedShowClick[idx];
var radius = showClickRadius * elapsed / showClickTime;
showClickSprites[idx] = drawCircle(pos.x, pos.y, radius, showClickColor, showClickThickness);
}
}
}
if (timeToDisappear > 0) {
timeToDisappear -= elapsed;
if (timeToDisappear <= 0)