草庐IT

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 - 在 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 - Sprite Kit - 根据对象的 NSMutableArray 列表删除 SKNode

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

ios - 在 Sprite Kit 中暂停游戏 : Why doesn't this work?

所以我在我的游戏中添加了一个暂停按钮,并且可以卡住和解冻View。但是,如果View当前被卡住,我希望它在屏幕上显示一条消息“暂停”。但如果我触摸我的暂停按钮,它不会显示标签。这真的很奇怪,因为我发现如果我将我的设备转到横向模式,就会出现“暂停”消息。(反之亦然,所以如果我在横向模式下触摸按钮并将设备转为纵向,则会出现暂停标签)谁能解决这个问题?顺便说一句:我也尝试了不同的方法来做到这一点,比如在场景开始时立即初始化暂停标签,并在需要时隐藏/显示它。这也没有用。我还尝试在更新方法中使用if语句来做到这一点(如果场景暂停=>显示暂停标签)这也没有用。我之前在这里和appledevforu

ios - 使用 SpriteKit 和内置物理引擎移动和跳跃 Sprite

我目前正在为iOS开发平台游戏,并决定使用SpriteKit。我已经通过了thisplatforminggametutorial,但我想使用内置的物理引擎而不是自己制作。我在网上搜索了好几天都没有找到关于如何使用SpriteKit创建具有跳跃和移动的平台游戏的好教程,所以我决定在这里问问。我也尝试过许多不同的实现,但它们都“感觉”不对。要么是运动、跳跃有问题,要么最常见的是两者都有。那么让Sprite在屏幕上移动和跳跃的最佳方式是什么?在经典的平台游戏风格中,我希望“相机”在沿x轴移动时跟随Sprite。最好的方法是更改​​Sprite的x值,然后立即将背景置于Sprite的中心吗?还

ios - 在 Sprite-Kit 中滚动 Tilemap(JSTileMap 故障)

由于JSTileMap扩展了SKNode,您可以使用API像任何其他节点一样移动和动画化您的tilemap。但是,我不断收到这种奇怪的效果/故障...代码:_tiledMap=[JSTileMapmapNamed:@"Cloud.tmx"];if(_tiledMap){[selfaddChild:_tiledMap];}_tiledMap.position=CGPointMake(800,0);SKAction*scrollLeft=[SKActionmoveTo:CGPointMake(600,0)duration:4];SKAction*scrollRight=[SKActionm

ios - Sprite-kit 如何将整数值传递给下一个场景

我有2个场景GameScene和GameLostScene,在GameLostScene中我创建了highScore但我不知道如何从游戏场景。然后我尝试使用NSLog打印分数,我可以看到哪个值不正确,我应该怎么做才能使其正确?GameScene方法-(void)gameLost{SKScene*nextScene=[[GameLostScenealloc]initWithSize:self.size];SKTransition*doors=[SKTransitionfadeWithDuration:1.0];NSLog(@"%ld",self.currentScore);[self.v