2013-10-08 9 views
5

Ich habe eine Ansicht, die ich bereits mit einer XIB-Datei erstellt habe.Eine SpriteKit-Ansicht in eine XIB-Ansicht integrieren

Jetzt möchte ich ein paar kleine Elemente zu dieser Ansicht hinzufügen, die einige der Physik-Animationen von SpriteKit verwenden würde, also brauche ich jetzt ein SKView.

Ist es möglich, ein SKView als Unteransicht der Ansicht hinzuzufügen, die meiner XIB-Ansicht entspricht? Ich habe es versucht und es scheint nichts zu zeigen.

finden Sie in der Viewcontroller meiner XIB Ansicht entsprechend:

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

und der Viewcontroller für meine benutzerdefinierte SKView hat:

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); 
     } 
    } 
+0

Es ist möglich. Sende den Code, den du ausprobiert hast. PS: Was hat das mit Xamarin zu tun? – LearnCocos2D

+0

Ich habe Xamarin getaggt, weil dies die Umgebung ist, die ich benutze. –

+0

Ah, ich verstehe. Ich habe gerade den Code überflogen, bemerkte nicht, dass es C# war. Ich bin blind. :) – LearnCocos2D

Antwort

-1

weiß ich nicht, was genau wollen Sie erreichen, aber ich denke, anstelle von SpriteKit können Sie die UIKitDynamics ausprobieren, die "Physik-bezogene Fähigkeiten und Animationen für Ansichten und andere dynamische Elemente" bietet. Ich möchte Sie auf den Apfel doc https://developer.apple.com/library/ios/samplecode/DynamicsCatalog/Introduction/Intro.html dann ein wirklich nettes Tutorial auf raywenderlich.com ersten Blick vorschlagen http://www.raywenderlich.com/50197/uikit-dynamics-tutorial

Hope this helps ...

+0

Danke, das ist sehr interessant. Ich habe versucht, Teilchen mit unterschiedlichen Geschwindigkeiten zu erreichen, die möglicherweise kollidieren. –

4

Ich habe dies nur einen Versuch und arbeitete.

  1. Begann mit Einzelansicht App.
  2. In myScene.m/.h von einer anderen Sprite-Kit-App in mein Projekt gezogen.
  3. Im Storyboard in eine UIView gezogen und die Klasse auf SKView im Storyboard gesetzt.
  4. einen Auslass aus, dass zu der VC-Klasse (in meinem Fall nannte es MYGAME)
  5. Hinzugefügt wird der # Import in der VC-Klasse Erstellt
  6. Auch aus dem Demo-Projekt kopiert viewDidLoad

Dies ist i gemacht

ändert nur
-(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]; 
} 

ich in einem anderen UIKit hinzugefügt Art zu zeigen, wie es ist ein wenig SK Spiel in Aussicht.

enter image description here

Nicht sicher, ob dies der beste Weg ist, aber ich hoffe, dass ich Ihre Frage beantwortet.

Ich stimme lionserdar zu, und Sie sollten stattdessen UIKit Dynamics ausprobieren.

+0

Vielen Dank für dieses Beispiel. Ich benutze Xamarin und verwende auch kein Storyboard. Ich habe einfach eine SKView als Unteransicht zu der Ansicht hinzugefügt, die aus meiner Xib-Datei erstellt wurde.Ich habe versucht, Teilchen mit unterschiedlichen Geschwindigkeiten zu erreichen, die möglicherweise kollidieren. –

+0

Niemals Xamarin verwendet, wenn Sie xcode verwenden möchten, können Sie auf http://www.apportable.com Port – DogCoffee

+0

Port, die init-Methode verpasst (sceneWithSize :) Vielen Dank! –

Verwandte Themen