Tag: skeffectnode

将SKSpriteNode添加到SKEffectNode时,金属崩溃

– [MTLDebugRenderCommandEncoder setScissorRect:]:2028:failed assertion(rect.x(0)+ rect.width(1080))(1080)must be <= 240' 使用下面的代码将一个简单的SKSpriteNode添加到SKEffectNode时,我得到了这个崩溃 SKSpriteNode *warpSprite = [SKSpriteNode spriteNodeWithImageNamed:@"art.scnassets/symbol.png"]; SKEffectNode *entryEffectsNode = [[SKEffectNode alloc] init]; [entryEffectsNode addChild:warpSprite]; [self addChild:entryEffectsNode]; 我没有在我的项目中的任何其他地方触及这些节点,当我更改精灵的值(必须<=值)在错误内更改。 编辑:我已经用一个简单的spriteNodeWithColor:Size:replace了精灵图像,并且(<= value)总是精灵的两倍大小。 另外应该注意的是,SKScene正被用作SceneKit场景中的叠加层。 我用下面的代码创build了一个单独的SKScene,这仍然导致相同的错误。 @implementation testScene -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { SKSpriteNode *testSprite = [SKSpriteNode spriteNodeWithColor:[SKColor purpleColor] size:CGSizeMake(100, 100)]; SKEffectNode *testEffect = [[SKEffectNode alloc] init]; [testEffect addChild:testSprite]; […]

如何正确打开和closuresSKNode的SKEffectNode?

我想要显示一个效果节点,如果一个节点被选中。 如果没有,我想closures/删除该效果。 (我在touchesBegan设置了一个节点)。 我使用下面的代码。 打开和closures效果节点正在混合我的头脑,因为我将主节点添加到效果节点。 我应该怎么把它关掉而不失去主节点呢? 我可以将效果的颜色更改为透明以隐藏它,但听起来不像正确的方式…将主节点从效果节点移动到效果节点的父节点可能会正常工作,但是我必须重新定位它,听起来像正确的方式.. 什么是这样做的正确途径之一? (正确=性能好,不增加编码复杂度) SKShapeNode* tile = [SKShapeNode node]; [tile setPath:CGPathCreateWithRoundedRect(CGRectMake(0, 0, 60, 100), 4, 4, nil)]; tile.strokeColor = tile.fillColor = [UIColor colorWithRed:0.0/255.0 green:128.0/255.0 blue:255.0/255.0 alpha:1.0]; tile.position = CGPointMake(10, 100); SKEffectNode *effectNode = [[SKEffectNode alloc] init]; GlowFilter *glowFilter = [[GlowFilter alloc] init]; [glowFilter setGlowColor:[[UIColor yellowColor] colorWithAlphaComponent:1]]; [effectNode setShouldRasterize:YES]; [effectNode setFilter:glowFilter]; […]

将发光效果添加到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) […]

你怎么能通过SKEffectNode创build一个精灵周围的辉光

我有一个SKSpriteNode ,我想围绕它的边缘蓝色辉光突出的目的。 我猜测,我需要使我的精灵成为一个SKEffectNode的孩子,然后创build/应用某种filter。 更新:我已经调查了这与select的答案的方法相当,并发现SKEffectNode具有相当大的性能,即使你已经设置了shouldRasterize和'没有filter'定义。 我的结论是,如果你的游戏一次需要超过10个移动对象,即使被光栅化,它们也不能涉及SKEffectNode 。 我的解决scheme可能会涉及预先呈现的辉光图像/animation,因为SKEffectNode不会根据我的要求来裁减它。 如果有人对我错过的任何东西有所了解,我会很高兴听到你所知道的任何事情! 我正在接受一个答案,因为它确实实现了我所要求的答案,但是希望将这些注释添加到正在寻找此路线的任何人,以便您了解使用SKEffectNode的一些问题。