debuglayer can visualize mouse clicks
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user