2013-10-21 13 views
5

Wie kann ich Game Center oder das GameKit Framework mit einer Sprite Kit Xcode-Vorlage verwenden? Im Sprite-Kit werden Szenen verwendet. Normalerweise müssen Sie jedoch zum Anzeigen der Bestenlisten "presentModalViewController" angeben, was in SKView jedoch nicht möglich ist.Wie wird eine modale Ansicht im Sprite-Kit angezeigt?

Vielen Dank im Voraus!

Antwort

1

presentModalViewController muss auf dem View-Controller aufgerufen werden, auf dem sich Ihr SKView befindet.

+0

können Sie mehr darüber ausarbeiten, wie ich das mit einem SKLabelNode verbinden kann, den ich als Knopf verwende – iDevMartin

+0

Wenn Sie Ihr Spiel mit der Sprite-Kit-Vorlage erstellt hätten, hätte es einen View-Controller für Sie erstellt. SKLabelNode erbt UIResponder, also addTarget: action: forControlEvents: sollte funktionieren. –

+1

Ich habe das in meinem SKView versucht, aber es funktioniert nicht. Hilfe! - (void) touchesEnded: (NSSet *) berührt mitEvent: (UIEvent *) Ereignis { UITouch * touch = [berührt anyObject]; CGPoint-Standort = [Touch locationInNode: self]; SKNode * Knoten = [Selbstknotenpunkt: Ort]; // wenn Schaltfläche berührt ... if ([node.name isEqualToString: @ "Errungenschaften"]) { // Was auch immer ... UIViewController * vc = self.view.window.rootViewController; [bttn addTarget: vc aktion: @selector (gamecenter) forControlEvents: UIControlEventTouchUpInside]; } } – iDevMartin

1

Sie können auch die Einstellungen anzeigen im Storyboard einrichten, dh

enter image description here

Dann, wenn Sie ein Sprite hinzufügen und für eine Schaltfläche dh _settingsBtn wird es die Segue

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    { 
     UITouch* touch = [touches anyObject]; 
     CGPoint location = [touch locationInNode:self]; 

     if ([_settingsBtn containsPoint:location]) { 
      UIViewController *vc = self.view.window.rootViewController; 
      [vc performSegueWithIdentifier:@"settingsPushSegue" sender:self]; 
     } 
    } 
ausführen

Dann können Sie ein Abwicklungssegment verwenden, um es zu entfernen, nur ein UIButton.

diese haben in Ihrer View-Controller-Klasse ..

- (IBAction)unwindToHideSettingsModal:(UIStoryboardSegue *)unwindSegue 
{ 
    //NSLog(@"UNWILD"); 
} 

So, jetzt auf dem Storyboard, Steuer ziehen Sie von Ihrer Taste, die Sie den grünen Ausgang segue hinzugefügt, und wählen Sie die oben Abroller segue.

enter image description here

Jetzt werden Sie es wie erwartet zeigen haben und verstecken. Sie können Ihre Einstellungen im Storyboard entwerfen.

Das sollte Sie beginnen.

+0

es funktioniert nicht.Ich versuche dem GKGameCenterViewConroller keine Sicht auf das Storyboard zu zeigen. – iDevMartin

+0

posten Sie Ihre App und krank aussehen, wenn Sie möchten – DogCoffee

+0

Dies stellt eine modale Ansicht als Frage gestellt, ich habe nicht Spiel-Center mit ios7 verwendet, so könnte am besten sein, wenn Sie dieses Buch http://www.raywenderlich.com/53279/ios- erhalten games-by-tutorials-version-1-0-now-available deckt alle Game Center-Informationen ab – DogCoffee

4

Smick wies mich in die richtige Richtung für ein ähnliches Problem, das ich hatte. Ich musste eine Nachricht von meinem SKScene an den ViewController-Hauptserver senden. Das hat es für mich:

In Ihrem SKScene, importieren Sie die Viewcontroller

#import "MyViewController.h" 

es dann eine Nachricht senden:

[(MyViewController *)self.view.window.rootViewController myMethod]; 

Sie könnten versuchen, eine Methode in dem Viewcontroller zu schaffen, der die GameKit eröffnet Sicht für Sie, die vom SKScene ausgelöst wird. Danke Smick!