嗨,我对目标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方法。抱歉这个愚蠢的问题,但我尝试的一切都不会工作。
答案 0 :(得分:1)
我猜测虽然您的代码将 mov dl, 18 ;Column
mov dh, 12 ;Row
强制转换为MenuScene,但 实际上是一个MenuScene,因此没有MenuScene代码运行。