以编程方式创建 SKView?

Create SKView programmatically?

我喜欢我的代码是明确的,所以我想删除 storyboard 文件并以编程方式创建 SKView

到目前为止我尝试过的:

  1. 我在 xcode 中创建了一个 SpriteKit 游戏项目。
  2. 删除故事板文件。
  3. 已从 Info.plist
  4. 中删除 sroryboard 属性
  5. 将在示例中找到的代码添加到 AppDelegate:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        AppViewController *viewController = [[AppViewController alloc] init];
        viewController.edgesForExtendedLayout = UIRectEdgeNone;
        _window.rootViewController = viewController;
        [_window makeKeyAndVisible];
        return YES;
    }
    
  6. 将此代码添加到 AppViewController:

    -(void) loadView
    {
        self.view = [[SKView alloc] init];
    } 
    

应用程序启动但随后在创建第一个精灵时崩溃并出现以下警告

EXC_BAD_ACCESS

我认为应该有一些很好的例子来说明如何做到这一点,但我还没有找到 SpriteKit 的例子。

我通过为视图设置框架解决了这个问题:

- (void) loadView
{
    self.view = [[SKView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
}

这是一个working example project in Swift