草庐IT

swift - 节点在 Sprite Kit 中变慢

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

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{

ios - 检查场景中的位置是否被 Sprite 占用

我正在使用Xcode、SpriteKit和Swift构建我的第一款iPhone游戏。我对这些技术不熟悉,但我熟悉一般的编程概念。这是我想用英语做的事情。我想让圆圈随机出现在屏幕上,然后开始变大。但是,我不希望在当前存在圆圈的位置出现圆圈。我无法确定每个圆圈的位置。在GameScene.swift中,我在didMoveToView中有以下代码:runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(addCircle),SKAction.waitForDuration(3,withRange:

ios - 在 Swift + Sprite Kit 中更改场景的最简单方法

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭7年前。Improvethisquestion我只是想知道在Swift+SpriteKit中更改场景的最简单方法是什么?

ios - 如何在 sprite kit 游戏中改变重心?

我一直在努力寻找,但没有成功。有没有办法以这种方式改变物理世界的重力属性,使物体不会被吸引到屏幕底部,而是被吸引到屏幕的中心? 最佳答案 使用SKFieldNode为了那个原因。只需将它放在map的中心并通过将重力设置为零的代码禁用重力(CGVector(0,0))我会给你代码,但我不使用ObjectiveC,所以我不知道它的确切语法。我可以试一试……[physicsBodysetGravity:CGVector(0,0)];请注意,我不知道这是否是正确的语法编辑:提问者在Swift中请求了一个SKFieldNode的例子,所以就在

ios - 在 Swift Sprite-Kit 游戏中实现游戏菜单

我创建了一款平台游戏,当我开始游戏时,它会直接进入游戏。我想要一个菜单​​,其中有一个开始游戏的按钮和一个通往商店的按钮,可以用已赚取的游戏货币购买不同的背景或角色。如果有人可以帮助我实现这种菜单,我将不胜感激。如果我能在玩游戏时获得有关如何暂停游戏的帮助,那就太好了。 最佳答案 您可以为菜单创建场景。当用户按下开始按钮时,您将展示您的游戏场景。classMenuScene:SKScene{overridefuncdidMoveToView(view:SKView){addButtons()}privatefuncaddButton