Тестирование хита с CALayer использование альфа-свойств содержания CALayer

Я пишу игру для Mac с помощью Какао. Я в настоящее время реализую тестирование хита и имею, основывает это тестирование хита предложений CALayer, но, кажется, не реализует альфа-свойства. Поскольку у меня время от времени есть много CALayers, сложенные друг на друге, я действительно должен найти способ определить то, на что пользователь на самом деле означал нажимать.

Я думаю, мог ли я так или иначе получить массив, который содержит указатели на все CALayers, которые содержат точку щелчка, я мог проникнуть в них некоторые как. Однако единственный способ, которым я должен до сих пор создать массив:

NSMutableArray* anArrayOfLayers = [NSMutableArray array];
    for (CALayer* aLayer in mapLayer.sublayers)
    {
        if ([aLayer containsPoint:mouseCoord])
            [anArrayOfLayers addObject:aLayer];
    }

Затем отсортируйте массив по z-значениям CALAYER, затем проходят проверку, если пиксель в местоположении является альфой или нет. Однако между видом и альфа-проверка это, кажется, невероятный пожиратель ресурсов производительности. (Как Вы даже проверили бы альфу?)

Там какой-либо путь состоит в том, чтобы сделать это?

6
задан Charliehorse 31 May 2010 в 14:10
поделиться