在WWDC视频(第503节,使用Sprite-Kit进行设计)的结尾,演讲者提到我们可以“使用标准UIKit控件作为SKView的subview”。我认为这对于创建一个带有一段帮助文本和一些UIButtons之类的弹出式中间游戏非常有用,但我根本无法让它工作。在我的场景初始化中,我尝试了一些简单的事情,比如:UIView*v=[[UIViewalloc]initWithFrame:CGRectMake(0,0,100,100)];v.backgroundColor=[UIColorblueColor];[self.viewaddSubview:v];但什么也没有出现。我想做的事情可行吗
我正在使用SpriteKit创建一个涉及气球的游戏。气球图像是一个长矩形(虚线),但我使用多边形(实线)在气球本身周围定义了一个物理体。我希望玩家能够“弹出”气球。我正在使用以下代码块来实现此目的:-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event{UITouch*touch=[touchesanyObject];NSArray*nodes=[selfnodesAtPoint:[touchlocationInNode:self]];for(SKNode*nodeinnodes){[noderemoveFromPare
我正在尝试像这样使用SpriteKit创建传送带效果我的第一个react是创建一个比屏幕大的传送带图像,然后用Action永远重复移动它。但这似乎不太好,因为它取决于屏幕尺寸。有没有更好的方法来做到这一点?同样显然我想把东西(它们会独立移动)放在传送带上所以节点是一个SKNode带有正在移动的子Sprite节点。更新:我希望传送带“视觉”移动;所以线条在一个方向上移动,给人以运动的印象。 最佳答案 将physicsBody应用于所有需要在传送带上移动的Sprite,并将affectedByGravity属性设置为NO。在这个例子中,
我的第一个游戏应用程序正在开发中。在此游戏中,用户控制的唯一角色将从一个方block跳到另一个方block。这就像Mario(在MarioBrothers中)从一部移动的电梯跳到另一部。如果他失败了,他就会死。那么,您如何区分自由落体和成功跳跃后的短距离落体呢?我认为我可以做的一件事是测量角色的垂直速度。所以我有以下几行代码。它与didSimulatePhysics一起使用SKNode*player=[selfchildNodeWithName:@"//player"];//It'sthenodecharacterizingthegamecharacterCGVectorv=playe
当我存档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
在cocos2d中可以使用改变纹理格式[CCTexture2DsetDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];有什么方法可以改变SpriteKit中的纹理格式吗?我想使用RGBA4444生成Sprite表,但我找不到在SpriteKit中设置纹理格式的方法。谢谢 最佳答案 如果您使用的是纹理图集,则可以在build设置中更改“输出纹理图集格式”。看看这个答案:https://stackoverflow.com/a/21626731/867635或者使用类似Te
我正在使用SpriteKit构建一款游戏,该游戏需要在用户触摸后进行快速精确的移动。我需要检测用户是否触摸了View中的“玩家”,如果他们触摸了,当他们移动时,玩家Sprite需要相应地随着触摸移动。我现在可以正常工作了,但是,它不是很精确...移动输入越多(没有抬起手指),Sprite从触摸位置获得的偏移量就越大。这是我现在正在使用的代码。-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{if(self.isFingerOnPlayer){UITouch*touch=[touchesanyObject];CGPo
自ios7发布以来,我一直在使用SpriteKits2D游戏进行学习和创作。我现在有了创建一个满载的自上而下赛车游戏的想法,但我仍然停留在一个问题上,即创建不同赛道的最佳方法是什么。最初,我想我会简单地使用TileMap(使用流行的程序Tiled)创建赛道,但后来我意识到我很可能无法创建我想要的赛道圆角。有没有人对最好的方法是什么有任何想法?也许使用TileMaps"is"最好的方法,但我错过了一个关于处理圆角碰撞检测的关键函数。 最佳答案 如果您计划拥有多个级别,使用Tiled创建背景肯定会更容易、更高效。目前您只能从路径创建具有
在我的SpriteKit应用程序中,在执行达到某个点后,我遇到了突然的延迟峰值。我相信我已经将问题范围缩小到我的SKScene子类中的以下片段。-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{CGPointloc=[[touchesanyObject]locationInView:self.view];[selfaddPhysicsBallAtLocation:loc];/*includedthistoshowthat-addPhysicsBallAtLocation:isbeingcalledmanytimes
我在删除名称/ID在我的NSMutableArray中的所有节点时遇到了一些麻烦。我已将每个对象的值设置为唯一名称。所以我只能删除NSMutableArray中的那些。对象是在循环中创建的,每个对象的名称都是唯一的。像这样:myObject.name=@"8dAN3kgh6E";下一个循环myObject.name=@"WsFkdGrmHm";下一个循环myObject.name=@"ov5BjzHGiw";然后将这些值相加并存储在一个数组中。NSMutableArray*currentShapeArray(8dAN3kgh6E,WsFkdGrmHm,ov5BjzHGiw)然后我循环遍