草庐IT

ios - SpriteKit : A Lot of sprites (1000+) with Bit Blitting

我正在尝试使用SpriteKit创建一个场景,其中包含数千个Sprite(~500-2000)。每个Sprite只是一个1x1的白色像素-甚至不需要为它们使用纹理。一次直接向场景中添加这么多Sprite是不可能的(至少我是这么认为的)。在iPhone6上,我最终添加了大约200个Sprite,然后由于内存原因系统结束了添加过程,并且没有添加其余的Sprite。我找到了一个聪明的解决方案BitBlitting所有Sprite都添加到一个节点,然后使用textureFromNode:方法将其“转换”为纹理,然后从该纹理创建一个Sprite,最终将其添加到屏幕。它运行良好,我能够以出色的fp

ios - 如何正确管理屏幕上的 Sprite 组

我正在用Swift构建我的第一个游戏,我想知道如何同时处理多个屏幕Sprite。我的游戏不断地使用addChild将Sprite推到屏幕上,所以同时有很多活跃的Sprite。我意识到我没有合适的方法来同时影响所有这些Sprite——就像我想同时影响所有敌方Sprite的物理属性一样。到目前为止,我在GameScene的开头创建了一个空数组varenemySprites=[enemyType1]()并且一直在appendingSprite实例而不是使用addChild将它们直接绘制到场景中。但是,我不能简单地循环并将它们绘制到屏幕上:forenemyinenemySprites{addC

ios - Sprite 套件/Swift 星星效果

这是我想要实现的:星星随机生成,调整一个小点图像的大小,看起来“星星在随机位置发光”。几周前我才开始使用Swift,我正在做这个很酷的游戏项目,这可能是一个很棒的功能,我相信其他一些用户也可以使用并回答这个问题。有什么想法吗?编辑:很抱歉成为这样的新手。 最佳答案 考虑使用CAEmitterLayer,已记录here.这很简单。如果您有疑问,我已经将SpriteKit,甚至OpenGL与标准的CoreAnimation结合起来,没有任何问题。 关于ios-Sprite套件/Swift星星

swift - 节点在 Sprite Kit 中变慢

我正在尝试创建一个街机游戏,其中球以恒定速度移动并且不受重力或摩擦力的影响。所以我将球创建为SKShapeNode并将其linearDamping和friction设置为0。我还将游戏场景设置为没有重力。但是在玩的时候,如果球以低角度撞到另一个形状节点(一个圆),它就会减速。球的restitution为1,allowsRotation为false。我通过在游戏开始时施加一个随机方向的脉冲来保持球移动。 最佳答案 这可能不是最理想的修复方法,但您可以将对象每次更新的固定速度设置为特定值,即您的恒定速度。解决此问题的另一种方法是在碰撞委

Swift 和 SpriteKit : Move two sprites as one cohesive unit?

是否可以在Swift中将两个Sprite作为一个整体移动?假设我们有两个矩形。我们如何确保两个矩形一起移动,就像它们形成一个Sprite一样?现在,我们在同一runBlock内对两个Sprite使用moveTo,为两个Action赋予相同的属性(例如,计时模式、持续时间)。有更好的方法吗? 最佳答案 您可以将两个节点添加为SKNode实例的子节点,然后只需移动父节点:letrectNode1=SKShapeNode(rect:aRect)letrectNode2=SKShapeNode(rect:aRect)letparentNod

ios - 如何用一根手指旋转 Sprite 节点 “touch and drag”

如何用一根手指“触摸并拖动”来旋转SpriteNode,以便:它不会乱动它在一个圆圈内移动(我已经多次成功完成这部分-既使用纯代码解决方案又使用SKS文件)它产生一个有意义的值(就像一个物理控制旋钮)当我的手指在上面时它会移动,但当我的手指离开时它不会移动我尝试过的事情:使用CGAffineTransform的CGAffineTransformMakeRotation实现SpriteKit中旋钮的旋转。但是我不知道如何在SpriteNode上使用CGAffineTransformMakeRotation。我可以将不同类型的对象放入我的场景中或放在它上面,但那是不对的。例如,Matthi

ios - 在 iOS 8 的 SpriteKit 中使用 xScale 翻转 Sprite 不会翻转 SKPhysicsBody

我有一个设置,其中有一个空的SKSpriteNode(“播放器”),它有N个SKSpriteNode作为child(body部位,例如“ARM”).每个child都有一个像这样创建的SKPhysicsBody:sprite.physicsBody=SKPhysicsBody(texture:sprite.texture,size:sprite.texture!.size())当我尝试翻转整个Sprite(“玩家”)时self.xScale=-1所有纹理都正确翻转,但SKPhysicsBody不受影响。我如何正确地翻转包含所有子项及其SKPhysicsBody的整个Sprite?

ios - 在 Swift Sprite Kit 中核心数据可用吗?

我有一个我正在创建的游戏,它使用了数组,其中有很多。为了在我的代码中更加简洁并且因为swift不会编译长数组(至少对我而言)我想将我的值存储在数据库中。SpriteKit中没有核心数据吗?如果没有,有哪些替代方案?我进行了谷歌搜索,但没有找到任何东西。提前致谢! 最佳答案 我最终做的是创建一个包含核心数据(不是游戏)的新swift项目,并将核心数据逻辑从AppDelegate复制到我的游戏应用程序委托(delegate)中。我通过右键单击创建数据模型,新建并放入我想要的数据结构。这实际上对我来说效果很好,我现在没有任何问题。感谢所有

ios - Swift IOS Spritekit 根据设备大小缩放 Sprite 大小

在过去的几周里,我一直在研究SpriteKit、Xcode和Swift,尽管做了很多研究,但我还没有找到在设备之间管理sprite大小的最佳方法。在我的游戏中,我发现了一种处理Sprite大小和位置的迂回方式,通过手动调整大小、字体大小和位置等特性,并使用if语句检查Sprite的高度,使我的Sprite在设备之间保持一致设备。理想情况下,我希望我的整个游戏View(包括它们所包含的Sprite)的大小与设备大小成比例。我试过弄乱不同的SKSceneScaleModes,但没有什么能真正起到作用。我的问题:在SpriteKit中(更具体地说是在Swift中)处理Sprite大小和设备之

ios - 如何使用 Sprite Kit 更改背景颜色

我正在尝试在Swift中使用SpriteKit制作游戏,但背景颜色有点问题。我在Xcode上开始了一个新项目并选择了“游戏”预设和SpriteKit。所以我有一个灰色背景的入门项目,上面有白色的“HelloWorld”和当我按下屏幕时出现的宇宙飞船。所以我删除了所有我不关心的代码,但是当我启动游戏时,我仍然有灰色背景,即使我尝试在GameScene.swift文件中更改它也是如此。这是我的文件:AppDelegate.swiftimportUIKit@UIApplicationMainclassAppDelegate:UIResponder,UIApplicationDelegate{