Добре, опитвам се да разбера това и търсих в мрежата и във форума, но все още не съм имал късмет.
Това, което искам да направя е следното. Имам MainMenuScene, което е SKScene. Тъй като добавих редица SKActions и други неща в тази сцена, исках да мога да я разделя на различни файлове. Така например, когато играчът натисне бутона "Настройки", бих използвал различен файл, за да напиша какво ще се случи, вместо да използвам MainMenuScene и да го направя още по-голям.
Въпросът ми е следният: искам да мога да препращам към SKScene в MainMenuScene.m от моя файл SettingsSubScene.m. SettingsSubScene.m е следното:
#import "SettingsSubScene.h"
@implementation SettingsSubScene
{
SKScene *_mainMenuScene;
}
-(id)initWithScene:(SKScene *)mainMenuScene {
_mainMenuScene = mainMenuScene;
return self;
}
-(void)displaySettings {
SKSpriteNode *settingsGearLarge = (SKSpriteNode *)[_mainMenuScene childNodeWithName:@"settingsGearLarge"];
SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"settings"];
background.anchorPoint = CGPointMake(0, 1);
background.position = settingsGearLarge.position;
background.zPosition = 0;
background.xScale = 0;
background.yScale = 0;
[_mainMenuScene addChild:background];
SKAction *appear = [SKAction scaleTo:1.0 duration:0.5];
appear.timingMode = SKActionTimingEaseInEaseOut;
[background runAction:appear completion:^{
[SKActionEffects fullScale:background amount:0.05 forever:YES];
[SKActionEffects fullWiggle:background amount:1 forever:YES];
}];
}
-(void)hideSettings {
}
@end
И го извиквам от MainMenuScene.m, използвайки следния код:
SettingsSubScene *settingsSubScene = [[SettingsSubScene alloc] initWithScene:self];
[settingsSubScene displaySettings];
И получавам грешка exc_bad_access. Разбира се, че правя нещо нередно и се обзалагам, че има начин да направя това, вместо да създавам голям файл MainMenuScene, но все още не съм го намерил. Може ли някой да помогне, моля?
Благодаря