Как получить солнце в полуденной тени с помощью SKLightNode

Я играю с SKLightNode. Я пытаюсь создать тени, чтобы было похоже, что солнце в полдень. Итак, в основном что-то вроде этого:

введите здесь описание изображения

Однако все, что я могу заставить SKLightNode отображать для меня, это следующее:

введите здесь описание изображения

Итак, проблема в том, что кажется, что свет исходит прямо рядом с объектом и с того же уровня.

Я поигрался с конфигурацией SKLightNode, но это то, что у меня есть на данный момент (я пробовал много конфигураций, которые, похоже, не имеют никакого эффекта)

   var light = SKLightNode()
    //testing lightnodes
    light.name = "light"
    light.categoryBitMask = 3
    light.position = point
    light.zPosition = 100.0
    light.falloff = 100.00;
    light.enabled = true
    light.lightColor = UIColor(red:  86/255, green: 128/255, blue: 45/255, alpha: 0.5) //initWithRed:1.0 green:1.0 blue:0.0 alpha:0.5];
    light.shadowColor = UIColor(red:  220/255, green: 220/255, blue: 220/255, alpha: 0.3)//[[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.3];
    light.ambientColor = UIColor(red:  220/255, green: 220/255, blue: 220/255, alpha: 0.3)//[[UIColor alloc] initWithRed:0.0
    addChild(light)

person user3673836    schedule 07.03.2015    source источник


Ответы (1)


Вы не можете добиться желаемого эффекта с помощью SKLightNode. Помните, что SK — это 2D-платформа. Ваш желаемый эффект 3D. Вы, вероятно, можете добиться желаемого эффекта, добавив дочерний элемент в свой узел со смещением позиции и пользовательскими настройками альфа-канала.

person sangony    schedule 07.03.2015
comment
Спасибо за ваш вклад, Сангони! Не могли бы вы немного уточнить, что вы имеете в виду? - person user3673836; 08.03.2015
comment
@user3673836 user3673836 - Уточнить что? - person sangony; 08.03.2015
comment
Я имею в виду, что я новичок в Swift и наборе спрайтов, поэтому я могу спросить глупо, но какова была ваша идея со смещением позиции и пользовательскими настройками альфа-канала более подробно? Особенно, как тень будет следовать за направлением мяча? - person user3673836; 08.03.2015
comment
@user3673836 user3673836 - Я не разбираюсь в Swift, но уверен, что вы знаете, как добавить дочерний элемент в SKSpriteNode. Если не просто сделать поиск и вы найдете как. Что касается настроек альфа-канала, вы можете использовать копию своего изображения и установить для свойства альфа значение, например, 0,3, чтобы сделать его несколько прозрачным. Если вы хотите, чтобы края были более прозрачными, вы можете создать этот эффект в приложении для редактирования изображений, таком как Photoshop или FireWorks. - person sangony; 08.03.2015