迅速多层次的场景

我正在努力在一个新的游戏项目,我将包括多个级别。 我正在阅读这个问题( Sprite Kit – 定义多个场景的variables ),以尽可能使用尽可能less的重复代码来完成多个场景的最佳方式。 答案当然是子类。

所以说我创build了我的“baseScene”这是SKScene的子类。 在这里,如所build议的,我应该把所有相关的代码(玩家,对象,碰撞位掩码,触摸开始function等),将在所有的子类级别场景共享。 我在baseScene中使用了通常的moveToView函数来添加内容,并且它适用于baseScene的所有子类的多个场景(level1Scene,level2Scene等)。 同样是开始function等,所以没有问题。

然而,我现在的问题是,在我的“level1Scene”中,我不能在我的生活中找出如何在baseScene中添加一些东西,例如一级敌人,障碍物或背景。 我不能使用didMoveToView,因为它是一个覆盖函数,将删除我在baseScene超类中添加的所有东西。

如果这是一个基本的,也许是愚蠢的问题,我将不胜感激,但是我对swift,特别是场景子类化是相当新的。

您可以在level1Scene覆盖baseScenelevel1Scene ,只需确保调用方法的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`... }