2013-10-08 27 views
5

Ho una vista che ho già creato utilizzando un file xib.Integrazione di una vista SpriteKit in una vista xib

Ora vorrei aggiungere alcuni piccoli elementi a questa vista che farebbero uso di alcune animazioni fisiche di SpriteKit, quindi ora ho bisogno di un SKView.

È possibile aggiungere una vista SK come vista secondaria della vista corrispondente alla vista xib? Ho provato questo e non sembra mostrare nulla.

Quello che segue è nel ViewController corrispondente al mio punto di vista XIB:

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

e la ViewController per mia abitudine SKView ha:

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

È possibile. Pubblica il codice che hai provato. PS cosa c'entra questo con xamarin? – LearnCocos2D

+0

Ho taggato Xamarin perché questo è l'ambiente che sto usando. –

+0

Ah, capisco. Ho appena sfogliato il codice, non ho notato che era C#. Sono cieco. :) – LearnCocos2D

risposta

-1

Non so che cosa esattamente si sta cercando di raggiungere ma penso che invece di SpriteKit potresti voler controllare UIKitDynamics che fornisce "funzionalità e animazioni relative alla fisica per le viste e altri elementi dinamici". Vorrei suggerire si guarda al doc mela prima https://developer.apple.com/library/ios/samplecode/DynamicsCatalog/Introduction/Intro.html poi davvero un bel tutorial su raywenderlich.com http://www.raywenderlich.com/50197/uikit-dynamics-tutorial

Spero che questo aiuti ...

+0

Grazie, questo è molto interessante. Stavo cercando di ottenere particelle che cadono a velocità diverse e potenzialmente in collisione. –

4

ho appena dato a questo una prova, e ha lavorato.

  1. Avviato con l'app vista singola.
  2. Trascinato in myScene.m/.h da un'altra app del kit sprite nel mio progetto.
  3. Nella storyboard trascinata in un UIView e imposta la classe a SKView nello storyboard.
  4. Creato una presa da quello della classe VC (nel mio caso chiamavano MyGame)
  5. Aggiunto il #import nella classe VC
  6. copiati anche dal progetto demo viewDidLoad

Questa è la cambiare solo ho fatto

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

ho aggiunto in qualche altro UIKit per mostrare genere come la sua un po 'SK gioco in una vista.

enter image description here

Non sono sicuro se questo è il modo migliore, ma spero risponde alla tua domanda.

Sono d'accordo con lionserdar e dovresti controllare invece UIKit Dynamics.

+0

Grazie per questo esempio. Sto usando Xamarin e anche io non uso uno storyboard. Ho semplicemente aggiunto un SKView come sottomodella alla vista che è stata creata dal mio file Xib.Stavo cercando di ottenere particelle che cadono a velocità diverse e potenzialmente in collisione. –

+0

Mai usato Xamarin, se vuoi usare xcode, puoi portarlo su Android usando http://www.apportable.com – DogCoffee

+0

perso quel metodo init (sceneWithSize :) Grazie! –

Problemi correlati