草庐IT

Sprite-kit

全部标签

ios - SpriteKit 传送带

我正在尝试像这样使用SpriteKit创建传送带效果我的第一个react是创建一个比屏幕大的传送带图像,然后用Action永远重复移动它。但这似乎不太好,因为它取决于屏幕尺寸。有没有更好的方法来做到这一点?同样显然我想把东西(它们会独立移动)放在传送带上所以节点是一个SKNode带有正在移动的子Sprite节点。更新:我希望传送带“视觉”移动;所以线条在一个方向上移动,给人以运动的印象。 最佳答案 将physicsBody应用于所有需要在传送带上移动的Sprite,并将affectedByGravity属性设置为NO。在这个例子中,

ios - 在 SpriteKit 中以随机坐标生成一个节点

我正在尝试生成一个我在随机坐标处创建的节点。到目前为止,我已经通过执行以下操作进行了尝试:-(SKShapeNode*)createTargetNode{intmaxXCoord=CGRectGetMaxX(self.frame);intmaxYCoord=CGRectGetMaxY(self.frame);intx=arc4random()%maxXCoord+40;inty=arc4random()%maxYCoord+40;SKShapeNode*target=[SKShapeNodenew];CGMutablePathRefcircle=CGPathCreateMutable(

ios - Sprite 套件游戏 : Telling Free Fall Death From Successful Jump

我的第一个游戏应用程序正在开发中。在此游戏中,用户控制的唯一角色将从一个方block跳到另一个方block。这就像Mario(在MarioBrothers中)从一部移动的电梯跳到另一部。如果他失败了,他就会死。那么,您如何区分自由落体和成功跳跃后的短距离落体呢?我认为我可以做的一件事是测量角色的垂直速度。所以我有以下几行代码。它与didSimulatePhysics一起使用SKNode*player=[selfchildNodeWithName:@"//player"];//It'sthenodecharacterizingthegamecharacterCGVectorv=playe

ios - 将 UIButton 添加到 SKScene

将UIButton添加到SKScene的最佳方法是什么?我意识到我可能无法将它添加为场景的subview,那么有什么替代方法可以让我在场景顶部有一个可点击按钮? 最佳答案 您可以选择以下方式之一:1-子类SKSpriteNode充当按钮2-在场景中实现触摸委托(delegate)并在您的“按钮”节点被触摸时做出响应这link将告诉你如何实现以上两个。3-使用像SpriteKitButton这样的组件,可以找到here. 关于ios-将UIButton添加到SKScene,我们在Stack

ios keyed archive Sprite Kit 解码错误 : SKTexture: Error loading image resource: "Missing Resource.png"

当我存档SKLabelNodes和SKShapeNodes(我没有尝试过SKSpriteNotes)时没问题,但是当我从存档中提取Sprite时,我得到SKTexture:加载图像资源时出错:“MissingResource.png”。下面是一些演示问题的示例代码:-(id)initWithSize:(CGSize)size{if(self=[superinitWithSize:size]){/*Setupyourscenehere*/self.backgroundColor=[SKColorcolorWithRed:0.15green:0.15blue:0.3alpha:1.0];S

ios - 如何更改 Sprite Kit 中的纹理格式?

在cocos2d中可以使用改变纹理格式[CCTexture2DsetDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];有什么方法可以改变SpriteKit中的纹理格式吗?我想使用RGBA4444生成Sprite表,但我找不到在SpriteKit中设置纹理格式的方法。谢谢 最佳答案 如果您使用的是纹理图集,则可以在build设置中更改“输出纹理图集格式”。看看这个答案:https://stackoverflow.com/a/21626731/867635或者使用类似Te

ios - 触摸和移动 Sprite 不能很好地跟踪

我正在使用SpriteKit构建一款游戏,该游戏需要在用户触摸后进行快速精确的移动。我需要检测用户是否触摸了View中的“玩家”,如果他们触摸了,当他们移动时,玩家Sprite需要相应地随着触摸移动。我现在可以正常工作了,但是,它不是很精确...移动输入越多(没有抬起手指),Sprite从触摸位置获得的偏移量就越大。这是我现在正在使用的代码。-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{if(self.isFingerOnPlayer){UITouch*touch=[touchesanyObject];CGPo

ios - 在 SKSpriteNode 上的两个不同 SKTextures 之间淡入淡出

有谁知道是否有办法在SKSpriteNode上的两个不同的SKTexture之间淡出(随着时间的推移)。我假设您不能直接执行此操作并计划使用具有更高ZPosition的重复子Sprite来实现淡入淡出,但我只是想检查是否没有使用的方法>SKAction(s)我已经看过了。 最佳答案 假设新纹理覆盖在旧纹理之上,以下代码应该可以解决这个问题(它不会淡出以前的纹理,而只是淡出新的在上面)。我省略了次要的实现细节,例如计时模式。-(void)fadeTexture:(SKTexture*)newTextureontoSpriteNode:

ios - 在 Sprite Kit 中创建赛道

自ios7发布以来,我一直在使用SpriteKits2D游戏进行学习和创作。我现在有了创建一个满载的自上而下赛车游戏的想法,但我仍然停留在一个问题上,即创建不同赛道的最佳方法是什么。最初,我想我会简单地使用TileMap(使用流行的程序Tiled)创建赛道,但后来我意识到我很可能无法创建我想要的赛道圆角。有没有人对最好的方法是什么有任何想法?也许使用TileMaps"is"最好的方法,但我错过了一个关于处理圆角碰撞检测的关键函数。 最佳答案 如果您计划拥有多个级别,使用Tiled创建背景肯定会更容易、更高效。目前您只能从路径创建具有

ios - Sprite Kit 是否会释放 Unseen Sprites

在我的SpriteKit应用程序中,在执行达到某个点后,我遇到了突然的延迟峰值。我相信我已经将问题范围缩小到我的SKScene子类中的以下片段。-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{CGPointloc=[[touchesanyObject]locationInView:self.view];[selfaddPhysicsBallAtLocation:loc];/*includedthistoshowthat-addPhysicsBallAtLocation:isbeingcalledmanytimes