複数のシーンで繰り返されるコードがある場合は、BaseScene
を作成してそこに配置することができます。したがって、シーン間で共有されるすべては、BaseScene
に入ります。
BaseScene.h:
#import <SpriteKit/SpriteKit.h>
@interface BaseScene : SKScene
@end
BaseScene.m
#import "BaseScene.h"
@interface BaseScene()
@property(nonatomic, strong) SKSpriteNode *background;
@end
@implementation BaseScene
-(void)didMoveToView:(SKView *)view{
self.background = [SKSpriteNode spriteNodeWithImageNamed:@"backMenu"];
[self addChild:self.background];
}
@end
GameScene.h(ないSKScene
からBaseScene
から今GameScene
継承)
#import <SpriteKit/SpriteKit.h>
#import "BaseScene.h"
@interface GameScene : BaseScene
@end
GameScene.m
#import "GameScene.h"
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
/* Setup your scene here */
[super didMoveToView:view];
}
@end
最後に、あなたは順番に現在のシーンに背景ノードを追加するBaseSceneのdidMoveToView:
を呼び出すBaseScene
のすべてのサブクラスで[super didMoveToView:view];
を呼び出します。
すべての設定を含む 'SKSpriteNode'のサブクラスを作成することができますが、シーンに追加したい場合は、それをシーンに追加する必要があると思います。 – Gliderman