0

问题:

每次我按下“< chat”按钮时,我的应用程序都会崩溃(仅当我将紫色 SKEmitterNode 添加到 GameScene.m 时才会发生这种情况)。

在此处输入图像描述

错误:

在此处输入图像描述

在此处输入图像描述

代码:

1)从 UIViewController 呈现 DrawDrawViewController(UIViewController):

DrawDrawViewController *drawDrawViewController = [[DrawDrawViewController alloc] init];
[self.navigationController pushViewController:drawDrawViewController animated:YES];

2)在DrawDrawViewController(UIViewController)里面显示GameScene(SKScene)

@interface DrawDrawViewController()
@property (nonatomic) SKView *drawDrawView;
@property (nonatomic) GameScene *scene;
@end


- (void)viewDidLoad {
    [super viewDidLoad];

    // Configure the view.
    _drawDrawView = [[SKView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

    [self.view addSubview:_drawDrawView];
    if(!_drawDrawView.scene) {
        _drawDrawView.ignoresSiblingOrder = YES;

        // Create and configure the scene.
        _scene = [GameScene unarchiveFromFile:@"GameScene"];
        _scene.scaleMode = SKSceneScaleModeAspectFill;

        // Present the scene.
        [_drawDrawView presentScene:_scene];
    }
}

3) 在 GameScene.m 中显示“hello world”以及一个 SKEmitterNode:

-(void)didMoveToView:(SKView *)view {
    /* Setup your scene here */
    SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];

    myLabel.text = @"Hello, World!";
    myLabel.fontSize = 65;
    myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
                                   CGRectGetMidY(self.frame));

    [self addChild:myLabel];

    NSString *fireEmmitterPath = [[NSBundle mainBundle] pathForResource:@"magic" ofType:@"sks"];
    SKEmitterNode *fireEmmitter = [NSKeyedUnarchiver unarchiveObjectWithFile:fireEmmitterPath];
    fireEmmitter = [NSKeyedUnarchiver unarchiveObjectWithFile:fireEmmitterPath];
    fireEmmitter.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2 - 200);
    fireEmmitter.name = @"fireEmmitter";
    fireEmmitter.zPosition = 1;
    fireEmmitter.targetNode = self;
    fireEmmitter.particleBirthRate = 100;
    [self addChild: fireEmmitter];
}
4

0 回答 0