Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
场景在Objective-C项目中显示为空白_Objective C_Swift_Xcode_Sprite Kit - Fatal编程技术网

场景在Objective-C项目中显示为空白

场景在Objective-C项目中显示为空白,objective-c,swift,xcode,sprite-kit,Objective C,Swift,Xcode,Sprite Kit,我在Xcode中有一个基于Objective-C的项目。我正在尝试将SpriteKit场景添加为视图控制器中的较小视图。SpriteKit文件是swift格式的。我添加了Floor1.sks并将其与Floor1.swift链接 现在我尝试将其加载到Objective-C ViewController.m文件中。在我的故事板中,我创建了SKView类的视图,并且我认为我正确地创建了一个桥接头文件。我现在插入它的代码是: GKScene *scene = [GKScene sceneWithFile

我在Xcode中有一个基于Objective-C的项目。我正在尝试将SpriteKit场景添加为视图控制器中的较小视图。SpriteKit文件是swift格式的。我添加了Floor1.sks并将其与Floor1.swift链接

现在我尝试将其加载到Objective-C ViewController.m文件中。在我的故事板中,我创建了SKView类的视图,并且我认为我正确地创建了一个桥接头文件。我现在插入它的代码是:

GKScene *scene = [GKScene sceneWithFileNamed:@"Floor1"];
Floor1 *sceneNode = (Floor1 *)scene.rootNode;
sceneNode.scaleMode = SKSceneScaleModeAspectFit;

SKView *skView = (SKView *)_skView;

[skView presentScene:sceneNode];

skView.showsFPS = YES;
skView.showsNodeCount = YES;

视图在我成功运行应用程序时加载,但它只是一个浅灰色背景的空视图,节点计数为0,FPS。我做错了什么,为什么它不能加载我正确的视图?

我也有同样的问题。原谅我的英语,我用谷歌翻译。 当我创建一个新的跨平台游戏时,我决定将其视为书面文件。即跨平台。它没有太多其他场景初始化。这一切都对我有用。以前只在iOS 10上工作,现在是iOS 9。 我附上的截图

[gamesecene.m][2]

#import "GameScene.h"

@implementation GameScene {
    SKShapeNode *_spinnyNode;
    SKLabelNode *_label;
}

+ (GameScene *)newGameScene {
    // Load 'GameScene.sks' as an SKScene.
    GameScene *scene = (GameScene *)[SKScene nodeWithFileNamed:@"GameScene"];
    if (!scene) {
        NSLog(@"Failed to load GameScene.sks");
        abort();
    }

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

    return scene;
}
[游戏场景.h][3]

#import <SpriteKit/SpriteKit.h>

@interface GameScene : SKScene

+ (GameScene *)newGameScene;

@end
#导入
@界面游戏场景:SKScene
+(游戏场景*)新游戏场景;
@结束

设置断点,查看场景是否正在初始化。顺便问一下,什么是Floor1(什么是scene.rootNode)?@Whirlwind Floor1是我的场景名称。有Floor1.sks和Floor1.swift。在sks中,我将其自定义类设置为swift文件。对于加载我的视图的代码(我问题中唯一的代码^^),它只是复制/粘贴到我的项目中。我似乎无法让它工作,但为什么你要从地板上加载GK场景1.sks?你的代码有点混乱。例如,您的场景似乎有一个属性rootNode,它也是场景。场景中不能有场景。我的意思是理论上可以,但作为子场景添加到另一个场景中的场景将充当普通节点。@Whirlwind我尝试加载sks,因为我认为这就是视图。在侧栏上的sks检查器中,我将自定义类设置为swift对应类。他们现在应该联系起来了,对吗?我应该做什么来加载我的视图?我不熟悉这一点:/
#import <SpriteKit/SpriteKit.h>

@interface GameScene : SKScene

+ (GameScene *)newGameScene;

@end