HaxeFlixel Игнорирование прозрачных пикселей на спрайте

Мне нужно, чтобы спрайт увеличивался, когда я наводил курсор мыши на спрайт. Но проблема в том, что спрайт имеет необычную форму, которая оставляет много прозрачного пространства. И мышь реагирует на это прозрачное пространство. Как мне сделать так, чтобы игра не реагировала на прозрачные пиксели, а только на сам спрайт?

Вот мой код:

override public function create()
{
    image = new FlxSprite(100, 100).loadGraphic("assets/images/freeplay.png");
    add(image);
}

override public function update(elapsed:Float)
{

    image.scale.set(1, 1);

    if (FlxG.mouse.overlaps(image))
    {
       image.scale.set(1.1, 1.1);
    }

super.update(elapsed);
}

Ответы (1 шт):

Автор решения: firet

Можно добавить проверку альфа-канала в точке где находится мышь

override public function update(elapsed:Float)
{
    image.scale.set(1, 1);

    if (FlxG.mouse.overlaps(image))
    {
        var val = image.getPixelAt(FlxPoint.get(FlxG.mouse.screenX, FlxG.mouse.screenY));
        if (val.alpha > 0)
        {
            image.scale.set(1.1, 1.1);
        }
    }
    super.update(elapsed);
}
→ Ссылка