Интеграция представления SpriteKit в представление xib
У меня есть вид, который я уже создал с использованием файла XIB.
Теперь я хотел бы добавить несколько небольших элементов в это представление, которые бы использовали некоторые физические анимации из SpriteKit, так что теперь мне нужен SKView.
Можно ли добавить SKView в качестве подпредставления представления, соответствующего моему представлению xib? Я попробовал это, и это, кажется, ничего не показывает.
Следующее находится в ViewController, соответствующем моему представлению XIB:
this.myCustomSKView = new CustomSKView()
this.View.AddSubview( this.myCustomSKView );
и ViewController для моего пользовательского SKView имеет:
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 ответа
Я не знаю, чего именно вы пытаетесь достичь, но я думаю, что вместо SpriteKit вы можете попробовать UIKitDynamics, который предоставляет "связанные с физикой возможности и анимацию для представлений и других динамических элементов". Я бы посоветовал вам сначала взглянуть на яблочный документ https://developer.apple.com/library/ios/samplecode/DynamicsCatalog/Introduction/Intro.html затем действительно хорошее руководство на raywenderlich.com http://www.raywenderlich.com/50197/uikit-dynamics-tutorial
Надеюсь это поможет...
Я только что попробовал и работал.
- Началось с одного приложения просмотра.
- Перетащите файл myScene.m / .h из другого приложения для набора спрайтов в мой проект.
- В раскадровке перетащите в UIView, и установите класс SKView в раскадровке.
- Создал выход из этого в класс VC (в моем случае это называется myGame)
- Добавлен #import в классе VC
- Также скопировано из демонстрационного проекта 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.