gpt4 book ai didi

ios - Swift 多层次场景

转载 作者:搜寻专家 更新时间:2023-11-01 06:46:14 25 4
gpt4 key购买 nike

我正在尝试开发一个包含多个关卡的新游戏项目。我正在阅读这个问题(Sprite Kit - Defining the variables for multiple scenes),了解使用尽可能少的重复代码来处理多个场景的最佳方法。答案当然是子类化。

假设我创建了我的“baseScene”,它是 SKScene 的一个子类。在这里,按照建议,我应该放置将在所有子类级别场景中共享的所有相关代码(播放器、对象、碰撞位掩码、触摸开始函数等)。我在 baseScene 中使用了常用的 moveToView 函数来添加内容,它在多个场景(level1Scene、level2Scene 等)中完美运行,这些场景都是 baseScene 的子类。触摸开始功能等也是如此,所以没问题。

然而,我现在的问题是,在我的“level1Scene”中,我终生无法弄清楚如何添加位于 baseScene 中的内容之上的内容,例如 1 级敌人、障碍物或背景。我不能使用 didMoveToView,因为它是一个覆盖函数,并且会删除我在 baseScene 父类(super class)中添加的所有内容。

如果这是一个基本且可能是愚蠢的问题,我将不胜感激,我深表歉意,但我对 swift 还很陌生,尤其是场景子类化。

最佳答案

您可以在level1Scene中覆盖baseScene的函数,您只需要确保调用该方法的super版本即可。以下是您的 level1Scene 类中的几个示例:

override func didMoveToView(view: SKView) {
super.didMoveToView(view) // Calls `didMoveToView` of `baseScene`.

// Additional setup needed for `level1Scene`...
}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
super.touchesBegan(touches, withEvent: event) // Calls `touchesBegan` of `baseScene`.

// Additional stuff you want to do in `level1Scene`...
}

关于ios - Swift 多层次场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com