有没有办法从代码中获取放置在场景编辑器中的 SKSpriteNode 的当前位置? - 精灵套件

Posted

技术标签:

【中文标题】有没有办法从代码中获取放置在场景编辑器中的 SKSpriteNode 的当前位置? - 精灵套件【英文标题】:Is there a way to get the current position of an SKSpriteNode, that was placed in the Scene Editor, from code? - SpriteKit 【发布时间】:2020-06-29 15:20:51 【问题描述】:

有没有办法获取场景编辑器中 SKSpriteNode 的当前位置? 我正在尝试在我的游戏中创建一个大炮功能,并将大炮放置在场景编辑器中,但我正在将炮弹元素编码到 Swift 文件中,我想将炮弹放在 Swift 文件中的大炮顶部。有没有办法从代码中获取放置在场景编辑器中的 SKSpriteNode 的位置?希望这是有道理的。

【问题讨论】:

我看到了你的问题的趋势!你试过什么了?您进行了哪些搜索?你有任何代码要显示吗?你试过了,它不工作?基本上,您似乎只是在要求某人为您解决这个问题 根据 Ron 的评论,您需要做一些好的教程并学习如何阅读 Apple 的文档,以便您可以发现哪些功能可用以及如何做。我个人推荐 Ray Wenderlich 教程,因为我就是这样学习的,但还有很多其他的。 没问题!谢谢。 【参考方案1】:

在您的场景(代码)中,您需要引用您的大炮,例如

   let myscene = GameScene(fileNamed:"WhateverYourSceneIsCalled")

   /// Once the file is referenced you can now reference objects from it. e.g.

   let myCannon = myscene.childNode(withName: "//YourCannon") as? SKNode // or whatever node type.

从那里你的罐头在 myCannon 中被引用。

如果你在 Xcode 中开始一个新游戏,无论是 ios 还是 macOS,选择 SpriteKit 作为引擎,并让它生成模板,它会生成一个非常简单的示例,易于参考。

你要这样做:

    在 Xcode 中单击文件 > 新建 > 项目 [1]:https://i.stack.imgur.com/IkEIb.png

    在您喜欢的平台上选择游戏。[2]:https://i.stack.imgur.com/S0r78.png

    正常设置您的项目 [3]:https://i.stack.imgur.com/cud0C.png

    您会在“GameScene.swift”或您选择的任何语言中看到,他们在其中给出了在场景中引用 SKNode 的示例。 [4]:https://i.stack.imgur.com/NbDXN.jpg

希望这会有所帮助!

【讨论】:

以上是关于有没有办法从代码中获取放置在场景编辑器中的 SKSpriteNode 的当前位置? - 精灵套件的主要内容,如果未能解决你的问题,请参考以下文章

如果使用编辑器中的场景加载,如何在 SpriteKit 中检测触摸

子类化使用 SpriteKit .sks 场景文件创建的 SKNode

Sprite Kit 场景编辑器 GameScene.sks 场景宽度和高度

SpriteKit .sks文件在分配纹理时崩溃Xcode 10

Xcode 9:SKEditorReference不允许动画?

如何从嵌入工作区的 Swift Playground 加载 .sks 文件?