有没有办法从代码中获取放置在场景编辑器中的 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