2015-01-16 2 views
3

Я добавил фона SKSpriteNode в качестве своего ребенка в свой SKScene. У этого узла есть несколько дочерних узлов. У каждого ребенка есть цветные пиксели, а также полностью прозрачные пиксели. Узлы детей перемещаются по экрану и иногда пересекаются друг с другом.Как я могу сделать пересечение двух SKSpriteNodes прозрачными

Я хочу, чтобы пересекающиеся цветные области детей были полностью прозрачными, когда они двигались так, чтобы фон спрайт показывался. Для непересекающихся областей каждого ребенка узел должен выглядеть как обычно. Я пробовал играть с blendmode, но не смог добиться желаемого эффекта. Есть идеи, как это сделать? Или, есть ли способ сделать это за пределами SpriteKit?

Благодаря

+0

Копаясь, похоже, что это возможно, если назначить SKShader моему дочернему узлу и передать в фоновом текстуре шейдеру как униформу. Чтобы имитировать прозрачный эффект, я бы нашел соответствующий пиксель в фоновой текстуре. Однако мне кажется, что мне нужно знать положение дочернего узла относительно фонового узла для этого. Это можно сделать, изменив единый кадр, но я уверен, что это приведет к низкой производительности. Однако нужно будет попробовать это позже. – rimsky

ответ

0

Я не думаю, что есть команды, чтобы достичь того, что вы хотите. Вы можете изменить всю текстуру/изображение спрайта, вы можете изменить часть изображения текстуры/изображения спрайта с помощью фильтра, но вы не можете специально модифицировать часть текстуры/изображения спрайта. Чтобы быть более конкретным, альфа-свойство спрайта относится ко всему спрайту, а не только к его части.

Смежные вопросы