- Цвет фона сцены - белый.
- В сцене есть два спрайтовые узлы (
SKSpriteNode
) спрайты 1 и Sprite 2 с черными границами и прозрачным фоном. - спрайт 2 перемещается.
- спрайт 2 достигает спрайт 1 и связывается с ним.
То, что я пытаюсь сделать, это слияние два спрайтов контактных границ, когда они контактируют друг с другом. Другими словами: я хочу изменить цвет точек контакта обоих спрайтов в цвет фона сцены. Я попытался сделать это с помощью свойства blendMode
. Но похоже, что свойство blendMode
работает только с узлом и его родителем.Sprite-Kit: изменить цвет контактов
Работает ли свойство blendMode
только с узлом и его родителем? Если да, есть ли способ изменить цвета точек контакта двух «обычных спрайт-узлов»?
Спасибо за любые идеи.
EDIT:
- цвет фона белый.
- каждый спрайт прозрачен и имеет границу с черным цветом.
- когда спрайт контакты ИЛИ движется вдоль границы другого спрайта, черный цвет всех контактных точек обоих спрайтов границ изменения в белый (то есть цвет фона). Цвет всех остальных граничных точек обоих спрайтов остается черным.
- Я положил еще одну картинку с более подробной информацией.
Заранее благодарен.
@KnightOfDragon благодарит вас за ответ. Я отредактировал мой вопрос. – suyama
с вашими изменениями, вы все равно хотите смешение XOR, но, конечно, вам нужно быть осторожным, потому что 2 спрайта должны смешиваться на пустом фоне, тогда вам нужно отключить XOR и добавить фон. Лучше всего создать новый графический контекст, нарисовать спрайты с помощью XOR blending в этом, а затем создать текстуру из этого, создать новый спрайт, который является одновременно объединенными спрайтами и наложить его сверху с помощью userinteractionEnabled, установленного на false – Knight0fDragon
Спасибо @KnightOfDragon. Если я правильно вас понимаю, создав текстуру и создав новый спрайт, который является одновременно объединенными спрайтами, у меня есть только один спрайт в конце. Правильно? Но как я могу обрабатывать (касание, перемещение, положение и т. Д.) С помощью спрайтов отдельно? Мне нужно перемещать, вычислять и т. Д. Каждый спрайт отдельно. Поэтому я не могу объединить спрайты в один спрайт. Мне нужно объединить только контактные контакты обеих границ, чтобы все остальные оставались отдельно. Спасибо. – suyama