我正在评估iOSSpriteKit物理引擎,为了进行测试,我使用Xcode创建了一个包含两个圆形节点的简单场景:两个节点都有圆形的物理体和5公斤的质量。我用SKPhysicsJointSpring连接两个节点。这是整个设置(在viewDidLoad()中):letpath=NSBundle.mainBundle().pathForResource("MyScene",ofType:"sks")!letscene=NSKeyedUnarchiver.unarchiveObjectWithFile(path)as!SKSceneletborder=SKPhysicsBody(edgeLoo
当我在游戏中点击重试按钮时,我希望它重新加载MainScene。我正在这样做:-(void)retry{SKTransition*transition=[SKTransitionfadeWithDuration:.4];MainScene*gameOver=[[MainScenealloc]initWithSize:self.size];[gameOverdidMoveToView:self.view];[self.scene.viewpresentScene:gameOvertransition:transition];}但是,这会导致每次我点击重试时内存/CPU使用率增加(增加很多
我正在尝试使用spritekit构建弹球游戏。球受重力影响并做出正确react,但我想不出一种方法来移动脚蹼以影响球的物理特性。现在我正在使用像这样的SKAction围绕anchor旋转鳍状肢//setanchorpointtoleftedgeforrotationtheLeftFlipper.anchorPoint=CGPointMake(0,0.5);//rotate(doneintouchesBegan)SKAction*rotateLeft=[SKActionrotateByAngle:-1.5fduration:0.1];[leftFlipperrunAction:rotat
我创建了一个CAGradientLayer,效果非常好。但我的问题是,我想在SpriteKit中使用它作为背景...有实现的可能吗?也许把它放在SKSpriteNode中?提前致谢编辑:不幸的是有一条错误信息:5月28日19:08:19amirs-mbp梯度[2845]:CGContextSaveGState:无效上下文0x0。这是一个严重的错误。此应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体下降。此通知是礼貌的:请解决此问题。它将成为即将到来的更新中的fatalerror。5月28日19:08:19amirs-mbp梯度[2845]:CGContextS
我目前正在处理一个SpriteKit项目,需要创建一个带有渐变尾部的cometd,该cometd在屏幕上呈现动画效果。在这方面,我遇到了SpriteKit的严重问题。尝试1。它:绘制CGPath并根据路径创建SKShapeNode创建一个带渐变的正方形SKShapeNode创建一个SKCropNode并将其maskNode指定为线,并添加正方形作为子节点在屏幕上动画正方形,同时被线/SKCropNode裁剪funcmakeCometInPosition(from:CGPoint,to:CGPoint,color:UIColor,timeInterval:NSTimeInterval){
spritekit是如何工作的?框架代码是编译到应用程序中还是iOS本身的一部分。我注意到每次iOS有重大更新时,我都会发现自己不得不重写一堆代码并修复我的spritekit游戏中的错误。这是为什么? 最佳答案 SpriteKit运行时环境在手机上,而不是应用程序的一部分。这样可以节省空间(否则每个应用程序都会包含他们使用的所有运行时库的副本,从而导致大量重复)但可能会导致您遇到的问题,运行时的更新可能会“破坏”应用程序以前工作过。发生这种情况是因为当您调用iOS函数(在SpriteKit、UIKit等中)时,您的代码分支到存储在手
例如,如果您有一张蹦床的图片,以及一个在上面跳跃的角色。然后,您想制作蹦床如何在中心向下弯曲的动画。为此,我必须获取位图并将其应用于密集镶嵌的OpenGLES网格。然后对其应用纹理。然后对网格进行变形。SpriteKit支持这个还是只能按原样显示纹理? 最佳答案 在iOS10中,添加了SKWarpGeometry允许您对Sprite进行变形。使用包含八个控制点的源和目标网格定义扭曲,这些点定义扭曲变换;SpriteKit将负责曲面分割和其他底层细节。您可以直接为Sprite设置包裹几何形状,或使用SKActions设置动画变形。SK
我想知道如何在展示GameOverScene时设置AdmobInterstitial广告。我应该怎么做才能在游戏结束时仅偶尔显示广告?我如何在Swift中实现它?我指的是这篇文章Howtocalladmobinterstitialadusingswift,spritekitandxcode?但我想知道如何在场景之间调用广告。编辑这是我用来展示广告的代码classGameViewController:UIViewController,GADInterstitialDelegate{varinterstitial=GADInterstitial()varintersitialRecieve
例如,如果我想制作自己的自定义动画,并通过x+=10以编程方式在每一帧移动一个SKSpriteNode,SpriteKit是否仍会正确应用物理,或者我必须始终使用SKAction? 最佳答案 无论您以何种方式或何时进行操作,都可以手动移动具有物理体的节点。但无论如何都不推荐这样做,因为它会对物理模拟产生不利影响。节点(View)可能与body的位置不同步1帧,您可能会将body移动到物理引擎将强制解决的碰撞中,从而导致跳跃、抖动、爆炸速度或跳过碰撞。当你使用物理时,坚持通过力、脉冲或直接改变body速度来移动物理body。
如何为SpriteKit创建图集?我试图将我所有的图像传输到某个文件夹并给它扩展名。结果文件夹将称为“somefolder.atlas”。这是正确的使用方法吗? 最佳答案 听起来不错。确保您还在Xcode设置中启用了图集生成(查看关于此的officialdocumentation,以及逐步图片)。然后,假设您的图集文件夹名为“somefolder.atlas”并且它包含一个文件“1.png”,您将执行如下操作:SKTextureAtlas*atlas=[SKTextureAtlasatlasNamed:@"somefolder"