5

Ich habe ein Projekt in cocos2d 2.0 gemacht und würde gerne ein Hauptmenü mit Storyboards einbauen.Wie können Storyboards in ein cocos2d 2.0-Projekt integriert werden?

Ich habe Jerrod Putnams Tutorial hier auf tinytimgames.com versucht (Ich kann den Link nicht bieten, weil neue Benutzer nur 2 Links pro Post erlaubt sind, aber wenn Sie googeln "cocos2d Storyboard" ist es der erste Link) aber Es hat nicht für mich funktioniert. Ich habe es genau verfolgt (denke ich). Ich öffnete mein cocos2d-Projekt und importierte die Dateien von seinem Github, dem CCViewController.m und .h, und erstellte dann eine neue Storyboard-Datei und folgte dem Tutorial. Wie auch immer, als ich es ausführte, begann es gerade erst mit meinem cocos2d-Spiel und nicht mit dem neuen Menü, das ich gerade erstellt habe.

Ich habe auch versucht dieses Tutorial: http://zackworkshopios.blogspot.com/2012/06/cocos2d-with-storyboard-example.html aber wieder einmal hat es nicht für mich zu arbeiten, wie ich habe nicht (oder nicht wissen, wo sie finden/get) die libcocos2d.a und libCocosDenshion.a Dateien.

Dies ist ein weiteres Tutorial ich von fidgetware versucht: http://fidgetware.com/Tutorials/page15/page15.html ich dieses Tutorial habe aber mein Projekt nicht über eine Datei RootViewController (.m oder .h) genannt, so war ich nicht sicher, wo Sie den Code setzen, die angeblich geh in diese Dateien.

Es gibt auch Ray Wenderlich Tutorial, aber seine verwendet keine Storyboards.

Wenn mir jemand eine Lösung geben kann, warum keiner von diesen für mich arbeitet oder mir eine Schritt für Schritt detaillierte Anleitung gibt, wie man Storyboards in mein cocos2d 2.0 Projekt einbaut, würde ich es sehr schätzen. Eine weitere Frage, die ich habe, ist, sollte ich mit einem cocos2d 2.0-Projekt beginnen und Storyboards einbauen oder sollte ich mit einem Single-View-Anwendungsprojekt (oder einem anderen?) Beginnen und meinen cocos2d 2.0-Teil einbauen. Danke im Voraus!

Antwort

8

In Ordnung, ich habe es endlich mit viel Hilfe von Jerrod Putnam herausgefunden, also danke Jerrod! Zuerst gehen Sie zu seinem Tutorial hier:

http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

und herunterladen und importieren Sie die Dateien aus dem Github-Link. Erstellen Sie dann eine Unterklasse des CCViewControllers und nennen Sie sie cocos2dViewController. In cocos2dViewController.h Kopieren Sie:

#import "CCViewController.h" 

@interface cocos2dViewController : CCViewController 

@end 

und im cocos2dViewController.m kopieren und diese (aus dem Tutorial von Putnam) einfügen

#import "GamePlay.h" 
#import "cocos2dViewController.h" 

@interface cocos2dViewController() 

@end 

@implementation cocos2dViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CCDirector *director = [CCDirector sharedDirector]; 

    if([director isViewLoaded] == NO) 
    { 
     // Create the OpenGL view that Cocos2D will render to. 
     CCGLView *glView = [CCGLView viewWithFrame:[[[UIApplication sharedApplication] keyWindow] bounds] 
             pixelFormat:kEAGLColorFormatRGB565 
             depthFormat:0 
           preserveBackbuffer:NO 
             sharegroup:nil 
            multiSampling:NO 
            numberOfSamples:0]; 

     // Assign the view to the director. 
     director.view = glView; 

     // Initialize other director settings. 
     [director setAnimationInterval:1.0f/60.0f]; 
     [director enableRetinaDisplay:YES]; 
    } 

    // Set the view controller as the director's delegate, so we can respond to certain events. 
    director.delegate = self; 

    // Add the director as a child view controller of this view controller. 
    [self addChildViewController:director]; 

    // Add the director's OpenGL view as a subview so we can see it. 
    [self.view addSubview:director.view]; 
    [self.view sendSubviewToBack:director.view]; 

    // Finish up our view controller containment responsibilities. 
    [director didMoveToParentViewController:self]; 

    // Run whatever scene we'd like to run here. 
    if(director.runningScene) 
     [director replaceScene:[GamePlay scene]]; 
    else 
     [director pushScene:[GamePlay scene]]; 
} 

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

@end 

Sie werden bemerken, dass ich GamePlay.h importiert, das ist, weil GamePlay.m ist, wo ich alle Inhalte für mein Spiel. Also importiere die Header-Datei für dein Spiel. sehen Sie auch, dass ich nenne

if(director.runningScene) 
    [director replaceScene:[GamePlay scene]]; 
else 
    [director pushScene:[GamePlay scene]]; 

Stellen Sie sicher, ersetzen „GamePlay“ mit dem Namen der Szene, die Ihr Spiel enthält. Sobald Sie das tun, gehen Sie zu Ihrem AppDelegate.m und ersetzen Sie Ihre

application didFinishLaunchingWithOptions 

Funktion mit diesem:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    return YES; 
} 

Sie sind fast da! Für Ihre Storyboard-Datei folgen Sie bitte Putnams Tutorial in dem angegebenen Link. Sagen Sie "und weisen Sie seine Klasse der gerade erstellten zu", und weisen Sie sie cocos2dViewController zu. Und das ist es! Führen Sie das Projekt und es sollte funktionieren, wenn Sie nicht zögern, Fragen zu stellen, die Sie haben.

3

Sie werden mich lieben.

folgen diesem Tutorial http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

dann musst du deine Hauptstoryboard setzen hier

der Trick ist, Ihre Hauptstoryboard in Ihrem iOS-Anwendungen auf die, die Sie erstellt-unter „Projektnamen“/sommerliche Ziel/iPhone/iPod-Bereitstellungsinformationen. Wählen Sie Ihren Mann Storyboard gibt

dann in Ihrem AppDelegate.m den Code entfernen, so dass es wie folgt aussieht:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 


return YES; 
} 

, wenn Sie Recht nicht, komme ich Ihnen meine Arbeits Quellcode geben, lassen Sie mich wissen

+0

Können Sie ein Arbeitsprojekt Download-Link bitte posten? –

+0

@OscarApeland Es tut mir so leid, ich bin nie wieder zu dir gekommen. leider habe ich dieses projekt nicht mehr und kann mich kaum an etwas erinnern, was ich damals gemacht habe (jetzt in einheit arbeiten). Bitte nimm meine Entschuldigung an. –

0

Dank bagelboy, habe ich nur ein Update:

// Create the OpenGL view that Cocos2D will render to. 
    CCGLView *glView = [CCGLView viewWithFrame:self.view.frame 
            pixelFormat:kEAGLColorFormatRGB565 
            depthFormat:0 
          preserveBackbuffer:NO 
            sharegroup:nil 
           multiSampling:NO 
           numberOfSamples:0]; 

Für mein Beispiel [[[UIApplication sharedApplication] keyWindow] bounds] nicht funktionierte, und ich self.view.frame

Verwandte Themen