У меня есть движущееся черное изображение на темном экране, чтобы было легче видеть, что я хотел бы добавить в белое свечение к изображению. Это мой код для движущегося изображения:Добавить светящийся эффект на SKSpriteNode
Ghost = SKSpriteNode(imageNamed: "Ghost1")
Ghost.size = CGSize(width: 50, height: 50)
Ghost.position = CGPoint(x: self.frame.width/2 - Ghost.frame.width, y: self.frame.height/2)
Ghost.physicsBody = SKPhysicsBody(circleOfRadius: Ghost.frame.height/1.4)
Ghost.physicsBody?.categoryBitMask = PhysicsCatagory.Ghost
Ghost.physicsBody?.collisionBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall
Ghost.physicsBody?.contactTestBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall | PhysicsCatagory.Score
Ghost.physicsBody?.affectedByGravity = false
Ghost.physicsBody?.isDynamic = true
Ghost.zPosition = 2
self.addChild(Ghost)
Я не уверен, как и что использовать для добавления в свечении, если вам нужно больше информации, пожалуйста, обращайтесь.
Это замечательный ответ, выходящий за рамки ответа. Это щедрое предоставление услуги плюс понимание, а также еще одна удивительная демонстрация силы, присущей мышлению с точки зрения расширений. СПАСИБО!!! И этого недостаточно. Добавить !!!^3. Запрос производительности: я поработал с эффектами и закончил вручную, выпекая их в текстуры для использования в качестве спрайтов. Этот эффект размытия обновляет каждый кадр. Или они «пекут» и просто работают как дополнение к растровому/спрайту, если только основной объект (на котором они применяются) не меняется? – Confused
@Confused: Очень хорошая точка. Я просто добавил эту строку к моему расширению 'effectNode.shouldRasterize = true'. Теперь эффект размытия вычисляется только в первый раз, а затем кэшируется для следующих кадров. Кэш автоматически недействителен, когда что-то изменяется внутри 'effectNode' (но это не произойдет с этим кодом). –
СПАСИБО, снова. Это выяснило это для меня. Я не был уверен, что 'effectNodes' делают интеллектуальную, самоочевидную оптимизацию себя или нет. Я думаю, иногда они это делают. Но только угадывать, глядя на нечетные изменения в framerates. Я не часто вижу корреляцию между кадрами, показанными на экране, и инструментами отладки в Xcode. Но shouldRasterize ... должен заставить его сделать эту оптимизацию/предотвращение постоянного пересчета. Я надеюсь. Ура! – Confused