diff --git a/src/kiss_flixel/DebugLayer.hx b/src/kiss_flixel/DebugLayer.hx index e3a3869..a3542b2 100644 --- a/src/kiss_flixel/DebugLayer.hx +++ b/src/kiss_flixel/DebugLayer.hx @@ -25,9 +25,42 @@ class DebugLayer extends FlxTypedGroup { 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)