5

我有一个已经使用 xib 文件创建的视图。

现在我想在这个视图中添加一些小元素,以利用 SpriteKit 中的一些物理动画,所以现在我需要一个 SKView。

是否可以将 SKView 添加为与我的 xib 视图对应的视图的子视图?我试过这个,它似乎没有显示任何东西。

下面是在我的XIB视图对应的ViewController中:

this.myCustomSKView = new CustomSKView()
this.View.AddSubview( this.myCustomSKView );

我的自定义 SKView 的 ViewController 有:

    public override void ViewWillLayoutSubviews ()
    {
        base.ViewWillLayoutSubviews ();
        if(this.SKView.Scene == null)
        {
            this.SKView.ShowsFPS = true;
            this.SKView.ShowsNodeCount = true;
            this.SKView.ShowsDrawCount = true;

            var scene = new MyCustomSKScene (this.SKView.Bounds.Size);
            this.SKView.PresentScene (scene);
        }
    }
4

2 回答 2

4

我只是试了一下,然后工作了。

  1. 从单视图应用程序开始。
  2. 将 myScene.m / .h 从另一个 sprite kit 应用程序拖到我的项目中。
  3. 在 Storyboard 中拖入一个 UIView,并在 storyboard 中将 class 设置为 SKView。
  4. 创建了一个到 VC 类的出口(在我的例子中称为 myGame)
  5. 在 VC 类中添加了#import
  6. 也从演示项目 viewDidLoad 复制而来

这是我做的唯一改变

-(void)viewDidLoad {
   [super viewDidLoad];
   // Next line is all I changed...
   SKView * skView = (SKView *)self.view;
   skView.showsFPS = YES;
   skView.showsNodeCount = YES;

   // Create and configure the scene.
   SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
   scene.scaleMode = SKSceneScaleModeAspectFill;

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

我添加了一些其他的 UIKit 来展示它是如何在视图中显示它的一个小 SK 游戏。

在此处输入图像描述

不确定这是否是最好的方法,但我希望我能回答你的问题。

我同意 lionserdar,你应该改用 UIKit Dynamics。

于 2013-10-09T08:38:38.490 回答
-1

我不知道您到底想要实现什么,但我认为您可能想查看 UIKitDynamics 而不是 SpriteKit,它提供“与物理相关的功能和动画到视图和其他动态项目”。我建议你先看看苹果文档 https://developer.apple.com/library/ios/samplecode/DynamicsCatalog/Introduction/Intro.html然后是 raywenderlich.com http://www.raywenderlich 上的一个非常好的教程 。 com/50197/uikit-dynamics-tutorial

希望这可以帮助...

于 2013-10-09T01:18:33.150 回答