- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 SKScene 类,我需要在其中实现一个自定义初始化程序来覆盖 SKScene 父类(super class) SKNode 的初始化程序 init(fileNamed: fileNamed),以便进行一些专有初始化,但保留 init(fileNamed: fileNamed) 从界面构建器加载场景。
我很难找到正确的语法。我尝试了以下方法:
class Try: SKScene
{
override init(fileNamed: String)
{
super.init(fileNamed: fileNamed)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
但它返回错误:Initializer does not override a designated initializer from its superclass
然而,它是来自父类(super class)的指定初始化器,不是直接父类(super class) SKEffectNode,而是上面的父类(super class) SKNode。在这种情况下,我该如何覆盖初始化程序?
J.
最佳答案
来自SWIFT docs :
Conversely, if you write a subclass initializer that matches a superclass convenience initializer, that superclass convenience initializer can never be called directly by your subclass, as per the rules described above in Initializer Delegation for Class Types. Therefore, your subclass is not (strictly speaking) providing an override of the superclass initializer. As a result, you do not write the override modifier when providing a matching implementation of a superclass convenience initializer.
如果我理解正确,这段代码应该可以工作:
convenience init?(fileNamed filename: String)
{
self.init(fileNamed: filename)
}
关于swift - 如何覆盖 SKScene init(fileNamed : fileNamed),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37488568/
是否可以在我们使用 SpriteKit 时获得的标准全屏场景中正确呈现一个小场景?由于 SKScene 本质上是一个 UIView,应该可以吗? 最佳答案 没有。你不能在一个场景中有两个场景。场景类似
我试图让这个 SKScene 在游戏结束时出现在场景的中间,这样之前的场景在背景中仍然可见(类似于 flappy bird 的结局)。这是我希望它如何显示的图像: 到目前为止,这是我编写的代码: 在游
我目前正在暂停一个包含游戏玩法的 SKScene,并使用 self.view?.presentScene() 呈现另一个包含其上方菜单的 SKScene。 菜单场景的背景是透明的,在过渡过程中,我可以
在我的主 UIViewController 中,我定义了两个 SKScenes。我只想首先呈现 gameScene,然后在 gameScene 中的 Action 触发(按下暂停按钮)后呈现 uiSc
是的,我知道你在想什么......但这不是重复...... 我有 2 个场景,gameScene 和 menuScene。我想将 menuScene 覆盖在 gameScene 上。我知道你不能一次呈
如果你们有任何问题(也许我没有提供足够的信息),我很乐意展示更多我所拥有的内容,非常感谢 所以我的游戏场景中有条件来检查 x 或 y 是否获胜,并且它应该使用这段代码将您带到另一个场景: let ga
我试图让玩家在游戏结束时通过短信分享他们的分数。 我已将框架导入到我的项目中。在我的 viewController.h 文件中导入。 这是我的 viewController.h 文件 #import
我有一个非常具体的问题。我曾经使用默认代码从 View Controller 呈现我的游戏场景。但是,我添加了另一个 SKScene,现在使用以下代码展示我的游戏场景: //In an SKScene
我有一个 View Controller ,它有三个 skscenes 作为 child 。 当我从一个转换到另一个时,旧的 skscene 不会被释放。 我希望它被释放,就好像它从未存在过一样。 例
在 SKScene 上运行 SKTransition 会破坏原始 SKScene 吗? 例如: SKTransition *reveal = [SKTransition revealWithDire
所以我在游戏中加入了 3 个不同的场景:MenuScene、GameScene 和 GameOverScene。 我想知道如何从 GameOverScene 中获取位于 GameScene 中的 sc
我想在我的主要 GameScene 中添加一个 SKScene。 SKReferenceNode 似乎是一个很好的解决方案。 我有:- GameScene.sks(主场景)- Countdown.sk
我已经为此苦苦挣扎了好几天,由于某种原因,我的 SKScene 没有正确释放,这会导致有限的内存增长,因为每次我退出并进入一个场景时,内存都会跳起来。这意味着在说 10 轮游戏后,应用程序崩溃。据我所
为什么我在 SKScene 中看不到文字?这是在 SKScene 中使用 UIScrollView 的正确方法吗? -(id)initWithSize:(CGSize)size { if (s
我正在尝试传递 SKTexture 的预加载数组s 来自我的 SpriteKit 场景的 UIViewController当它初始化时进入场景。 但是,我似乎无法自定义 SKScene 的初始化方法。
我如何获得场景的边界? 我正在测试演示,并以这种方式初始化场景: GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"]; scen
有没有办法让 SKScene 有圆角?我知道您可以使用 SKCropNode 制作圆角矩形,但我不确定如何在 SKScene 中执行此操作。我的 ViewController 像 Apple 默认模板
似乎在 SKScene 中制作圆形的唯一方法是上传圆形图像或使用 SKShapeNodes。 如果我们想让用户从地址簿或照片库导入图片并将这些图片变成圆形(而不是矩形)以添加到 SKScene,该怎么
我有一个粒子,通过 SKScene 添加到 UIViewController 中。以下是我的 SKScene 代码: class MyScene : SKScene { private var
我正在 Xcode 中使用 Swift3 编写程序。我在我的程序中使用 SpriteKit 和 SKScene。如您所知,gamescene.sks 中有一个始终运行的预定义更新函数(即使 View
我是一名优秀的程序员,十分优秀!