- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 SpriteKit 框架在 Swift 中开发一款游戏。在此应用程序中,我有 GameScene.sks,其中显示了我的 UI。在该 .sks 文件中,底部菜单有一个 SKReferenceNode。如果用户从 iPhone X 运行游戏,底部菜单将改变它的高度。
但是,我很难做到这一点。我将菜单设为 SKReferenceNode,因为它在多个场景中使用 - 所以如果我更改菜单,它将在所有场景中更改(GameScene.sks、GameScene1.sks、GameScene2.sks 等等)
处理此问题的最佳方法是什么?如果这是一个显而易见的问题,我很抱歉,但我一直对这个问题视而不见。
最佳答案
你做得很好,使用菜单作为 SKReferenceNode 也是我会做的。但是,您无需从 GameViewController 更改它即可获得您想要的结果。
在我需要 RefNode 的外观依赖于某些变量的情况下我做了什么我没有在所需的 init 中加载外观
通常在 RefNode 类中我这样做
class SomeObject: SKSpriteNode {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
func setup() {
//setup objects in here
}
}
但是当我需要更改演示文稿时,我会在所需的初始化中注释掉设置调用
然后从我的 GameScene 中的初始化代码调用设置
class SomeObject: SKSpriteNode {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
//setup()
}
func setup(height: CGFloat) {
//setup objects in here
if let background = self.childNode(withName: "//background") as? SKSpriteNode {
self. background = background
background.size.height = height
}
}
}
然后在GameScene中
func createSomeObject() {
if let someObjectNode = self.childNode(withName: "//someObjectNode") as? SKReferenceNode {
someObject = someObjectNode(withName: "//someObjectNode") as? SomeObject
//you can figure out this multiple ways
if isIpad {
height = 50
}
else if isIphoneX {
height = 250
}
someObject.setup(height: height)
}
}
关于swift - 从 GameViewController 改变 SKReferenceNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48345603/
我已经设置了一个 SKScene 用作 SKReferenceNode。雪橇是一个 SKSpriteNode,在引用节点场景中定义了一个自定义类,所有的狗都是雪橇 Sprite 的 child 。自定
我有很长的 2d 关卡,所以我将它分成更多的 .sks 文件。我有“GameScene”,我可以通过拖放将它们加入到场景编辑器中。它创建 SKReferenceNodes。我已经成功地做到了。但是我想
我计划制作一款街机游戏,其中屏幕分为两半。每次玩家开始游戏时,这半部分的背景都会有所不同。 我想将我的背景设计到不同的 .sks 文件中,然后通过以编程方式使用 SKReferenceNode 将其中
我有一个奇怪的问题,我的 SKReferenceNode 在放大后无法正确碰撞。它在中心碰撞得很好,但它忽略了边缘的碰撞和接触。 Here is the first photo of the scen
我在 Xcode 的场景编辑器中构建了一个 Scene1。我已经引用了另一个场景,该场景具有此 Scene1 的动画。 现在,我正在尝试排除 SKReferenceNode 内的 SKSpriteNo
我正在使用 SpriteKit 框架在 Swift 中开发一款游戏。在此应用程序中,我有 GameScene.sks,其中显示了我的 UI。在该 .sks 文件中,底部菜单有一个 SKReferenc
我有一个 GameScene.sks自定义类GameScene.swift它通过自定义类检查器(在 Xcode 的右侧)连接。这工作正常。 现在在GameScene.swift我想引用另一个我想在将来
我发现了一个从 iOS 11 开始的奇怪问题,我的应用程序不会更新我的 SKReferenceNode 上的 Sprite 。基本上,我有一个具有页眉和页脚的“覆盖”节点(我用于多个场景的 SKS 文
有没有办法使用 Swift 在 SpriteKit 中池化/缓存 SKReferenceNodes? 我正在使用 xCodes 可视化关卡编辑器创建游戏。我正在使用可视化关卡编辑器创建不同的 .sks
我创建了一个场景 Case.sks(使用关卡编辑器),在一个 SKSpriteNode(名称:方形)和一个 SKLabel(名称:标签)中。在我的主场景 GameScene.sks 中,我使用带有“C
我想在我的主要 GameScene 中添加一个 SKScene。 SKReferenceNode 似乎是一个很好的解决方案。 我有:- GameScene.sks(主场景)- Countdown.sk
我是一名优秀的程序员,十分优秀!