没有调用正确的场景目标c

时间:2017-04-16 15:11:54

标签: ios objective-c sprite-kit

嗨,我对目标C很陌生,并且还没有使用SpriteKit。我想弄清楚为什么我的GameViewController没有触发我的MenuScene.m。

这是来自我的GameViewController

#import "MenuScene.h"

@implementation GameViewController

- (void)viewDidLoad {
[super viewDidLoad];

MenuScene* scene = (MenuScene*)[SKScene nodeWithFileNamed:@"MenuScene"];

// Set the scale mode to scale to fit the window
scene.scaleMode = SKSceneScaleModeAspectFill;

SKView *skView = (SKView *)self.view;

// Present the scene
[skView presentScene:scene];

skView.showsFPS = YES;
skView.showsNodeCount = YES;
}
@end

这是来自我的MenuScene.m

- (void)didMoveToView:(SKView *)view 
{
NSLog(@"In MenuScene.m");
CGSize playButtonSize = CGSizeMake(100, 100);
_playButton = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:playButtonSize];
_playButton.position = CGPointMake(self.size.height * .5, self.size.width*.5);
_playButton.name = @"playButtonNode";
_playButton.zPosition = 1.0;
[self addChild:_playButton];
}

我得到的是一个褪色的灰色背景,没有别的东西,控制台上没有任何东西打印,所以我知道它没有调用我的MenuScene.m中的didMoveToView方法。如果我改变这一行

MenuScene* scene = (MenuScene*)[SKScene nodeWithFileNamed:@"MenuScene"];

到这个

GameScene *scene = (GameScene *)[SKScene nodeWithFileNamed:@"GameScene"];

它将正确调用GameScene文件中的didMoveToView方法。抱歉这个愚蠢的问题,但我尝试的一切都不会工作。

1 个答案:

答案 0 :(得分:1)

我猜测虽然您的代码 mov dl, 18 ;Column mov dh, 12 ;Row 强制转换为MenuScene,但 实际上是一个MenuScene,因此没有MenuScene代码运行。