将 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 文件中的两个 tableviews 添加到主 xib 视图