2015-10-21 4 views
1

Мой свет:SKLightNode не отображается в Sprite Kit

self.light = [[SKLightNode alloc] init]; 
self.light.categoryBitMask = 0; 
self.light.falloff = 1; 
self.light.ambientColor = [UIColor whiteColor]; 
self.light.lightColor = [[UIColor alloc] initWithRed:1.0 green:1.0 blue:0.0 alpha:0.5]; 
self.light.shadowColor = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.3]; 
self.light.zPosition = 200; 
[self.world addChild:self.light]; 

при обновлении я изменить его положение в положение символа.

Я пробовал все и просто не мог видеть свой свет.

ответ

1

Добавление света к сцене не добавляет к сцене белый круг, лампочку или что-то в этом роде, она просто освещает все с помощью этого света. Таким образом, вы не будете «видеть свет», просто его последствия.

Если вы хотите, чтобы тени были светлыми, вы должны активировать тени для каждого объекта, который должен отбрасывать тени. Вы можете сделать это для SKNode с:

yourSKNode.shadowCastBitMask = 1 

Наконец, если вы хотите сделать бамп влияние на то, как фон, вы должны создать фон с помощью:

let background = SKSpriteNode(imageNamed: "theName", normalMapped: true) 
background.lightingBitMask = 1 
+0

Но как бы я добавить что-то вроде эффекта лампочка? – HelloimDarius

+0

Если вы хотите увидеть что-то там, где находится свет, вам нужно будет добавить SKNode в этот момент (например, вы можете добавить SKSpriteNode со светло-ламповой текстурой или эмиссионными камерами SKEmitterNode). Это то, что вы искали? – RoberRM

+0

То, что я пытаюсь достичь здесь, - это сделать игру типа подземелья, где персонаж имеет свет (например, прожектор), а пока игрок идет по карте, становится светлее, а в других местах будет темно. Я попытался добавить прозрачную текстуру, но я бы хотел, чтобы свет был более динамичным. – HelloimDarius