#swift #sprite-kit #skaction
#swift #sprite-kit #skaction
Вопрос:
Я хотел бы создать эффект туманности / облачности, видимый на изображениях ниже (эффект туманности, похоже, работает на всем, кроме игрового персонажа впереди), таким образом, чтобы я мог определять уровень облачности с помощью действия. Я заинтересован в том, чтобы это влияло на определенные спрайты, а не на все спрайты.
Комментарии:
1. Не могли бы вы быть немного более конкретным, я не вижу никакой туманности. Вы имеете в виду тот факт, что кнопки имеют небольшие тени под ними?
2. Изучите
SKEffectNodes
иCIFilters
3. @Confused Я добавил другое изображение, чтобы вы могли видеть разницу
4. @Knight0fDragon Спасибо за совет. Фильтры довольно, как я могу найти именно тот, который мне нужен?
Ответ №1:
Самый простой способ добиться этого — создать SpriteNode размером с весь экран, который будет заполнен белым цветом. Поместите это поверх всех других узлов, кроме узлов, которые вы не хотите, чтобы исчезли.
Итак, если у вас есть узлы A, B, C, D, E и F, и вы хотите, чтобы все, кроме F, были размыты, а экран пользователя находится справа … вот так:
A, B, C, D, E, [белый слой], F -> просмотрщик / камера здесь.
Непрозрачность белого слоя не может быть на 100% непрозрачной, потому что в этом случае вы не увидите ничего, кроме F и белого слоя. Итак, установите белый слой примерно (в данном случае) на 33% непрозрачным, используя альфа-значение SKSpriteNode. 1 полностью непрозрачен, 0,33 — 33% непрозрачен или 67% прозрачен 😉
Еще один совет: вы можете изменить режим наложения узлов, для которого аддитивный режим наложения лучше всего подходит для этого, но обычный тоже подойдет.