将 SpriteKit 视图集成到 xib 视图中

Posted

技术标签:

【中文标题】将 SpriteKit 视图集成到 xib 视图中【英文标题】:Integrating a SpriteKit view into a xib view 【发布时间】:2013-10-16 00:25:00 【问题描述】:

我已经使用 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);
        
    

【问题讨论】:

有可能。发布您尝试过的代码。 PS这和xamarin有什么关系? 我标记了 Xamarin,因为这是我正在使用的环境。 啊,我明白了。我只是浏览了代码,没有注意到它是 C#。我瞎了。 :) 【参考方案1】:

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

希望对你有帮助……

【讨论】:

谢谢,这很有趣。我试图实现粒子以不同的速度下落并可能发生碰撞。 不明白为什么有人会否决这个答案!甚至接受答案的作者(Dogcoffee)也同意我的观点!【参考方案2】:

我只是试了一下,并且成功了。

    从单视图应用开始。 将 myScene.m / .h 从另一个 sprite kit 应用拖到我的项目中。 在storyboard中拖入一个UIView,在storyboard中设置class为SKView。 创建了一个从它到 VC 类的出口(在我的例子中称为 myGame) 在 VC 类中添加了#import 同样从演示项目 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。

【讨论】:

感谢您提供此示例。我正在使用 Xamarin,我也不使用情节提要。我只是将 SKView 作为子视图添加到从我的 Xib 文件创建的视图中。我试图实现粒子以不同的速度下落并可能发生碰撞。 没用过Xamarin,如果你想用xcode,可以用apportable.com移植到android 错过了初始化方法 (sceneWithSize:) 谢谢! 如何再次返回 UIKit 屏幕

以上是关于将 SpriteKit 视图集成到 xib 视图中的主要内容,如果未能解决你的问题,请参考以下文章

如何将视图 XIB 作为子视图加载到视图控制器 XIB 中

将两个 xib 文件中的两个 tableviews 添加到主 xib 视图

在情节提要中调用 xib

如何将 xib 的子视图显示到另一个 xib 的表格单元加载中

将 XIB 加载到另一个 XIB 的视图中

如何将SpriteKit中的单个游戏场景添加到普通的单视图Swift应用程序中