草庐IT

SkSpriteNode

全部标签

ios - 如何检测 SKSpriteNode 接触但没有反应?

我有两个SKSpriteNode第一个Hero+(id)hero{NSMutableArray*walkFrames=[NSMutableArrayarray];SKTextureAtlas*heroAnimatedAtlas=[SKTextureAtlasatlasNamed:@"HeroImages"];intnumImages=(int)heroAnimatedAtlas.textureNames.count;for(inti=1;i第二个是硬币SKSpriteNode*coin=[SKSpriteNodespriteNodeWithImageNamed:@"coin"];coi

ios - 如何在触摸屏幕时让 'poo' 出现在某个地方?

我正在用spritekit制作一款适用于iphone的游戏,我是个菜鸟哈哈。无论如何,这是我到目前为止的代码,但我希望它出现在我选择的地方,而不是出现在我触摸的地方。-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{/*Calledwhenatouchbegins*/for(UITouch*touchintouches){CGPointlocation=[touchlocationInNode:self];SKSpriteNode*poo=[SKSpriteNodespriteNodeWithImageNamed:

ios - 阻止 SKSpriteNode 变慢

我试图让我的SKSpriteNodes永远以恒定的速度移动,即使在碰撞之后也是如此。我已将重力设置为0,摩擦力设置为0,线性和角度阻尼设置为零,但Sprites仍然缓慢减速至零速度。我怎样才能让他们继续前进?根据下面的答案,这是我尝试过的:编辑下面的代码有效!我只需要检查节点是否比限制慢并加速它们。[selfenumerateChildNodesWithName:kBallNameusingBlock:^(SKNode*node,BOOL*stop){SKSpriteNode*ball=(SKSpriteNode*)node;if(ball.physicsBody.velocity.d

ios - 在 SpriteKit 中使用 CAGradientLayer?

我创建了一个CAGradientLayer,效果非常好。但我的问题是,我想在SpriteKit中使用它作为背景...有实现的可能吗?也许把它放在SKSpriteNode中?提前致谢编辑:不幸的是有一条错误信息:5月28日19:08:19amirs-mbp梯度[2845]:CGContextSaveGState:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体下降。此通知是礼貌的:请解决此问题。它将成为即将到来的更新中的fatalerror。5月28日19:08:19amirs-mbp梯度[2845]:CGContextS

ios - 有没有办法创建 SKSpriteNode 的 CGPath 匹配轮廓?

我的目标是创建一个与SKSpriteNode的轮廓匹配的CGPath。这对于创建SKSpriteNode的发光/轮廓以及物理路径很有用。我有过这样的想法,但我并没有真正使用CIImage,所以我不知道是否有一种方法可以在像素级别访问/修改图像。然后也许我可以将这样的东西移植到Objective-C中:http://www.sakri.net/blog/2009/05/28/detecting-edge-pixels-with-marching-squares-algorithm/也对其他方法持开放态度,这些方法使这个过程自动化,而不是我为我为物理或轮廓/发光效果制作的每个Sprite创

ios - 如果我在没有 SKAction 的情况下直接修改 SKSpriteNode 的位置和旋转,SpriteKit 会应用物理吗?

例如,如果我想制作自己的自定义动画,并通过x+=10以编程方式在每一帧移动一个SKSpriteNode,SpriteKit是否仍会正确应用物理,或者我必须始终使用SKAction? 最佳答案 无论您以何种方式或何时进行操作,都可以手动移动具有物理体的节点。但无论如何都不推荐这样做,因为它会对物理模拟产生不利影响。节点(View)可能与body的位置不同步1帧,您可能会将body移动到物理引擎将强制解决的碰撞中,从而导致跳跃、抖动、爆炸速度或跳过碰撞。当你使用物理时,坚持通过力、脉冲或直接改变body速度来移动物理body。

ios - 手动动画纹理时 SKSpriteNode 拉伸(stretch)

我有一个相当简单的动画,其中包含8个相同大小的图像。我没有使用内置的动画方法,因为我想手动控制动态动画的速度。我正在使用预加载的SKTexture并执行[objectsetTexture:texture];在update:currentTime方法中。问题是有时纹理会变得非常扭曲/拉伸(stretch)。经过大量调试后,我将其缩小为仅在节点静止时发生。事实上,如果我将节点移动一个像素并像这样将其移回原位,问题就不会发生:[selfsetTexture:texture];CGPointcurrentPosition=self.position;self.position=CGPointM

ios - 用它的 child 调整 SKSpriteNode 的大小

我正在尝试在有一个子节点的SKSpriteNode上运行一系列SKActions,所有Action都在2个形状上一起执行,除了:[SKActionresizeToWidth:height:duration:]这是我的代码:-(void)CreateCards{for(inti=0;i 最佳答案 要达到预期效果,您应该使用scaling而不是调整大小。替换:SKAction*zoom=[SKActiongroup:[NSArrayarrayWithObjects:[SKActionmoveTo:CGPointMake(60,345)d

ios - Sprite Kit - 隐藏 SKSpriteNode

如何让我的硬币在我的玩家碰撞时消失?我不知道我是否应该使用SKNode或什么:/。请帮忙,我似乎无法弄明白代码:-(void)spawnCoin{SKNode*coinNode=[SKNodenode];coinNode.position=CGPointMake(self.frame.size.width+_buildTexture1.size.width+150+(arc4random()%100),0);coinNode.zPosition=-10;CGFloaty=arc4random()%(NSInteger)(self.frame.size.height/2)+40;SKAc

ios - 子类化 SKSpriteNode 时物理体问题?

我在继承SKSpriteNode时遇到问题。这是我对子类的实现:@implementationSSSquirrel-(id)init{if(self=[superinit]){//CreateSquirrelandphysicsbodySKSpriteNode*squirrel=[SKSpriteNodespriteNodeWithImageNamed:@"squirrelNormal"];squirrel.physicsBody=[SKPhysicsBodybodyWithCircleOfRadius:squirrel.size.width/2-10];squirrel.physic