将SpriteKit视图集成到xib视图中

时间:2013-10-08 21:15:52

标签: ios7 xamarin xib sprite-kit skview

我有一个视图,我已经使用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);
        }
    }

2 个答案:

答案 0 :(得分:4)

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

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

    这是我做的唯一改变

    -(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游戏。

    enter image description here

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

    我同意lionserdar,你应该查看UIKit Dynamics。

答案 1 :(得分:-1)

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

希望这会有所帮助......