Fixed a bug with circle buttons overlap

This commit is contained in:
KarimAkra
2025-04-15 21:35:28 +03:00
parent b1b30ed09f
commit c4bb161865
2 changed files with 9 additions and 6 deletions
+6 -3
View File
@@ -191,10 +191,13 @@ class FunkinButton extends FunkinSprite implements IFlxInput
if (overlapsPoint(worldPos, true, camera))
{
touchID = touch.touchPointID;
var prevButton = buttonsTouchID.get(touchID);
if (prevButton != null && prevButton != this && !prevButton.limitToBounds)
if (buttonsTouchID.exists(touchID) && buttonsTouchID.get(touchID) != this)
{
prevButton.onOutHandler();
var prevButton = buttonsTouchID.get(touchID);
if (prevButton.status == FunkinButtonStatus.PRESSED && prevButton != null && !prevButton.limitToBounds)
{
prevButton.onOutHandler();
}
}
buttonsTouchID.set(touchID, this);
@@ -76,10 +76,10 @@ class FunkinPolygonButton extends FunkinButton
@:noCompletion
private override function checkTouchOverlap(?touch:FlxTouch):Bool
{
var touches = touch == null ? FlxG.touches.list : [touch];
for (touch in touches)
if (polygon != null && polygon.length >= 6 && polygon.length % 2 == 0)
{
if (polygon != null && polygon.length >= 6 && polygon.length % 2 == 0)
var touches = touch == null ? FlxG.touches.list : [touch];
for (touch in touches)
{
for (camera in cameras)
{