草庐IT

SkSpriteNode

全部标签

swift - SKSpriteNode 隐藏在父节点下方

使用Swift和SpriteKit,我遇到了一个问题,即SKSpriteNode在作为子节点添加到另一个SKSpriteNode时不显示。相反,放在完全相同位置的SKLabelNode确实会出现。//doesnotshowup,expectedawhitesquareoverridefuncrenderBody(parentNode:SKNode,position:CGPoint){letnode=SKSpriteNode(color:UIColor.whiteColor(),size:CGSize(width:48,height:48))node.position=positionp

swift - 在 Swift 中混合 UIColors

我有两个SKSpriteNode,它们的颜色定义如下:colorNode[0].color=UIColor(red:255,green:0,blue:0,alpha:1)colorNode[1].color=UIColor(red:0,green:255,blue:0,alpha:1)我想要第三个SKSpriteNode混合前两个SKSpriteNode着色,结果应该是这样的:colorNode[2].color=UIColor(red:255,green:255,blue:0,alpha:1)但是有没有办法添加两个UIColors?像这样:colorNode[2].color=col

ios - 当存在带有物理体的 SkSpriteNode 时,TouchesMoved() 滞后非常不一致

我正在使用Swift3.0、SpriteKit和Xcode8.2.1,在运行iOS10.2的iPhone6s上进行测试。问题很简单……从表面上看。基本上,我的TouchesMoved()更新速度非常不一致,并且正在破坏我游戏中UI的一个基本部分。有时它工作得很好,一分钟后它以一半的速度更新。我已经隔离了问题。在具有物理体的场景中简单地使用SKSpriteNode会导致问题...这是我的GameScene代码:importSpriteKitimportDarwinimportFoundationvarspaceShip=SKTexture(imageNamed:"Spaceship")c

swift - 处理多个 GestureRecognizers

我在理解UIGestureRecognizers时遇到了问题。我现在的目标是拥有一组GestureRecognizers来执行不同的任务,例如:overridefuncviewDidLoad(){mainScene=GameScene(size:self.view.bounds.size)main=viewas!SKViewmainScene.panRecognizer=UIPanGestureRecognizer(target:self,action:#selector(shiftView(recognizer:)))main.addGestureRecognizer(mainSce

ios - Sprite Kit iOS 7 - 如何向 SKSpriteNode 添加阴影?

我有一个包含其他SKSpriteNode的SKSpriteNode。如何创建此SKSpriteNode的副本,其中所有像素均为黑色?一旦有了这个阴影SKSpriteNode,我就会将它倒过来用作阴影。谢谢 最佳答案 您可以像这样使用相同的图像创建阴影:SKSpriteNode*shadow=[SKSpriteNodespriteNodeWithImageNamed:@"YourImageName"];shadow.blendMode=SKBlendModeAlpha;shadow.colorBlendFactor=1;shadow.

ios - Sprite Kit iOS 7 - 如何向 SKSpriteNode 添加阴影?

我有一个包含其他SKSpriteNode的SKSpriteNode。如何创建此SKSpriteNode的副本,其中所有像素均为黑色?一旦有了这个阴影SKSpriteNode,我就会将它倒过来用作阴影。谢谢 最佳答案 您可以像这样使用相同的图像创建阴影:SKSpriteNode*shadow=[SKSpriteNodespriteNodeWithImageNamed:@"YourImageName"];shadow.blendMode=SKBlendModeAlpha;shadow.colorBlendFactor=1;shadow.

ios - 触摸时未检测到自定义 SKSpriteNode

在学习SpriteKit的过程中,我正在尝试制作一款冒险小游戏。我正在创建一个英雄,并将其添加到场景中,然后在touchesBegan:期间,我检测触摸是否起源于英雄,并采取相应的行动。如果我将英雄添加为SKSpriteNode,触摸会检测到他。如果我将他添加为SKSpriteNode的子类,则触摸不会!添加的区别:_heroNode=[SKSpriteNodespriteNodeWithImageNamed:@"hero.png"];对比_heroNode=[[ADVHeroNodealloc]init];初始化看起来像这样:-(id)init{if(self=[superinit]

ios - 触摸时未检测到自定义 SKSpriteNode

在学习SpriteKit的过程中,我正在尝试制作一款冒险小游戏。我正在创建一个英雄,并将其添加到场景中,然后在touchesBegan:期间,我检测触摸是否起源于英雄,并采取相应的行动。如果我将英雄添加为SKSpriteNode,触摸会检测到他。如果我将他添加为SKSpriteNode的子类,则触摸不会!添加的区别:_heroNode=[SKSpriteNodespriteNodeWithImageNamed:@"hero.png"];对比_heroNode=[[ADVHeroNodealloc]init];初始化看起来像这样:-(id)init{if(self=[superinit]

ios - 如何使用 Sprite Kit 减慢运行 SKAction followPath 的 SKSpriteNode 以获得慢动作效果?

我基本上希望Action运行,然后在Action中间创建慢动作效果,然后再将其从慢动作中移出。有没有人对如何做到这一点有任何好的反馈?我考虑过手动创建操作并使用更新方法,但我觉得这可能有点矫枉过正。我希望有一个更简单的解决方案。我的另一个想法是停止Action,然后以较慢的持续时间再次开始,但我不认为它会保持在同一条路径上,而且它可能看起来很奇怪。这是我用来创建操作的代码。CGMutablePathRefcgpath=CGPathCreateMutable();CGPathMoveToPoint(cgpath,NULL,mysprite.position.x,mysprite.posi

ios - 如何使用 Sprite Kit 减慢运行 SKAction followPath 的 SKSpriteNode 以获得慢动作效果?

我基本上希望Action运行,然后在Action中间创建慢动作效果,然后再将其从慢动作中移出。有没有人对如何做到这一点有任何好的反馈?我考虑过手动创建操作并使用更新方法,但我觉得这可能有点矫枉过正。我希望有一个更简单的解决方案。我的另一个想法是停止Action,然后以较慢的持续时间再次开始,但我不认为它会保持在同一条路径上,而且它可能看起来很奇怪。这是我用来创建操作的代码。CGMutablePathRefcgpath=CGPathCreateMutable();CGPathMoveToPoint(cgpath,NULL,mysprite.position.x,mysprite.posi