我很好奇当showsFields打开时,内存占用增加的特别快?它可以在30秒内增长到500MB。如果我的mac只有8GB内存,在内存警告之前我可能只有不到8分钟的调试时间,在真实设备上调试时情况会更糟。下面的屏幕截图是在真实设备(iOS9.2)上测试的。您可以通过创建SpriteKit项目并在ViewController内的viewDidLoad()方法中打开showsFields来快速尝试。skView.showsFields=true如果您想查看showsFields的作用,请将此片段放在场景的-didMoveToView(view:)方法中。overridefuncdidMove
我正在尝试制作一个简单的应用程序,您可以在其中触摸一个点,无论您触摸哪里,Sprite都会沿着一条线穿过该点到达屏幕边缘。我想绘制连接Sprite原点(它开始的点)和你触摸的点的线段,以及Sprite原点和屏幕边缘的终点之间的线段,所以我可以想象路径Sprite和原点、触摸点和终点的x和y偏移之间的关系。希望这不会太困惑。TL;DR:我需要在两点之间画一条线,但我不知道如何使用SpriteKitSwift来做到这一点。提前致谢。 最佳答案 这可以使用CGPath和SKShapeNode来完成。让我们从CGPath开始。当我们需要使用
我正在使用Swift和SpriteKit开发一个简单的游戏,我注意到FPS从60下降到58-59(然后下降)。发生掉落时有明显的滞后—看起来好像掉落了1或2帧。CPU负载大约为20-25%,变化不大,内存使用量永久约为8MB。截图:屏幕上有6个对象:标签、红色对象(Sprite)、2x绿色对象(Sprite)、一个框(Sprite)和“ground”(矩形节点)。除标签外的所有对象都有物理体(显示为白色边框)。绿色和白色对象是动态创建的,从右向左移动并在屏幕外时销毁:funcscheduleAddingLiquid(){letwait=SKAction.waitForDuration(
我正在使用Swift、SpriteKit和Xcode6,我想在SpriteKit中创建一个粒子效果,有点像iOS游戏“Duet”中球的粒子效果,但我不知道如何进行,我设法创建了一个粒子效果,但不是像这个游戏中那样跟随节点并绘制节点路径的粒子...这是我的代码:letfirstCircle=SKSpriteNode(imageNamed:"Circle")letparticle=SKEmitterNode(fileNamed:"FirstParticle.sks")overridefuncdidMoveToView(view:SKView){firstCircle.physicsBody
在学习SpriteKit的同时,我一直在基于Breakout创建我自己的非常简单的测试游戏(通过RayWenderlich等人的教程使用iOS游戏),看看我是否可以应用我学到的概念。我决定通过使用.sks文件创建Sprite节点并替换我的手动边界检查和物理体碰撞来简化我的代码。但是,只要我的球以陡峭的角度与它们碰撞,它就会一直平行于墙壁/其他矩形运行(例如,简单地上下滑动)。这是相关代码——我已将物理体属性移动到代码中以使其更加可见:importSpriteKitstructPhysicsCategory{staticletNone:UInt32=0//0staticletEdge:U
我一直在玩弄SpriteKit,并且对如何从代码驱动它有了相当不错的感觉,但我对Xcode6中包含的关卡编辑器感到非常困惑。我看过wwdc视频(“platformsstateofunion”和“what'snewinspriteKit”),并在网上搜索过,但没能找到关于关卡编辑器及其功能的太多描述真的在做我不明白的是,模板设置的两个文件是怎么关联的?.sks文件是GameScene.swift文件的表达式,还是它包含的GameScene类?或者它们是否都只包含将在同一场景中一起播放的单独对象/节点?或者(这是我最好的解释).sks文件和编辑器主要是为了营造响应式角色“生活”的环境?如果
绘制gridlikethis的最佳方法是什么?通过使用SpriteKit2D游戏引擎?要求:以编程方式输入列数和行数(5x5、10x3、3x4等)。使用SKSpriteNode或SKShapeNode以编程方式绘制它,因为只使用squarelikethis的图像对我来说似乎效率不高。正方形应具有固定大小(假设每个正方形为40x40)。网格应在View中垂直和水平居中。我打算使用SKSpriteNode(来自图像)作为玩家在此网格中的不同方block中移动。因此,我将在二维数组中保存每个方block的中心点(x,y),然后从玩家的当前位置移动到该位置。如果您对此也有更好的建议,我很想听听
UpdatefunctioninSpriteKitdifferentforiPhoneX我有一个Swift的SpriteKit游戏。它在横向模式下无限滚动,不时在场景的update()函数中生成障碍物和敌人。我也在这里更新了分数值。问题出在iPhoneX上,因为长度不同,这完全打乱了游戏并使其无法玩。事情产生得太快了,分数更新得很慢。最重要的是,模拟器运行游戏的方式似乎与实际设备不同,它在模拟器iPhoneX上运行良好。但是,当我在我的朋友iPhoneX上查看它时,这是不可能的,所以我没有即使我所做的改变是否会有所作为!请帮忙!允许不同的纵横比、分辨率、单位和距离(努力为所有人创造一致的游戏体
UpdatefunctioninSpriteKitdifferentforiPhoneX我有一个Swift的SpriteKit游戏。它在横向模式下无限滚动,不时在场景的update()函数中生成障碍物和敌人。我也在这里更新了分数值。问题出在iPhoneX上,因为长度不同,这完全打乱了游戏并使其无法玩。事情产生得太快了,分数更新得很慢。最重要的是,模拟器运行游戏的方式似乎与实际设备不同,它在模拟器iPhoneX上运行良好。但是,当我在我的朋友iPhoneX上查看它时,这是不可能的,所以我没有即使我所做的改变是否会有所作为!请帮忙!允许不同的纵横比、分辨率、单位和距离(努力为所有人创造一致的游戏体
TilemapnotScrollinginspritekit我正在IOS中开发一个涉及滚动瓷砖地图的小游戏。我已经让我的背景图片像这样滚动12345678910-(void)moveBg{ [selfenumerateChildNodesWithName:@"scroll"usingBlock: ^(SKNode*node,BOOL*stop){ SKSpriteNode*bg=(SKSpriteNode*)node; CGPointbgVelocity=CGPointMake(-BG_POINTS_PER_SEC,0.0); CGPointamtToMove= CGPoint