草庐IT

Sprite-Kit

全部标签

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

ios - SKTransition transitionWithCIFilter :duration: not animating

我一直在尝试像这样在SpriteKit中创建场景之间的翻页过渡:+(SKTransition*)pageTurnTransition{floatw=768.0;floath=1024.0;CIVector*extent=[CIVectorvectorWithX:0Y:0Z:wW:h];CIImage*shadingImage=[[CIImagealloc]initWithColor:[CIColorcolorWithRed:0.2green:0.2blue:0.2]];CIImage*blankImage=[[CIImagealloc]initWithColor:[CIColorcol

ios - Sprite Kit - 根据对象的 NSMutableArray 列表删除 SKNode

我在删除名称/ID在我的NSMutableArray中的所有节点时遇到了一些麻烦。我已将每个对象的值设置为唯一名称。所以我只能删除NSMutableArray中的那些。对象是在循环中创建的,每个对象的名称都是唯一的。像这样:myObject.name=@"8dAN3kgh6E";下一个循环myObject.name=@"WsFkdGrmHm";下一个循环myObject.name=@"ov5BjzHGiw";然后将这些值相加并存储在一个数组中。NSMutableArray*currentShapeArray(8dAN3kgh6E,WsFkdGrmHm,ov5BjzHGiw)然后我循环遍