如何将故事板成的cocos2d 2.0的项目?(How to incorporate storybo

2019-06-26 09:48发布

我曾在cocos2d 2.0的项目,并希望结合使用故事板的主菜单。

我在这里尝试了tinytimgames.com杰罗德Putnam的教程(我不能提供的链接,因为新用户可在每个岗位只有2个链接,但如果谷歌“的cocos2d故事板”,它是第一个链接),但它并没有为工作我。 我跟着它究竟是(我认为)。 我打开我的cocos2d的项目,并从他的github上,该CCViewController.m和.h文件导入的文件,然后创建一个新的故事板文件,并跟着教程。 然而,当我运行它时,它才刚刚起步直上我的cocos2d的游戏,而不是我刚创建的新菜单上。

我也试过这个教程: http://zackworkshopios.blogspot.com/2012/06/cocos2d-with-storyboard-example.html但再次因为我没有它没有为我工作(或不知道在哪里查找/领)libcocos2d.a和libCocosDenshion.a文件。

这是另一个教程中,我从fidgetware尝试: http://fidgetware.com/Tutorials/page15/page15.html我做了这个教程,但我的项目没有一个叫RootViewController的(.M或.H),所以我不知道文件放在哪里是应该进入这些文件的代码。

还有雷Wenderlich的教程,但他没有故事板使用。

如果任何人都可以给我一个解决方案,为什么这些都不是为我工作或者给我一步步详细运行通过的如何将故事板到我的cocos2d 2.0的项目,我将不胜感激。 另外还有一个问题我已经是我应该开始用cocos2d的2.0项目,并纳入故事板或者我应该有一个单一的视图应用项目启动(或不同的一个?),并纳入我的cocos2d 2.0的一部分。 提前致谢!

Answer 1:

好吧,我设法最后用了很多从杰罗德普特南帮助弄清楚,所以谢谢杰罗德! 第一次去他的教程在这里:

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

并且下载和GitHub的链接导入文件。 然后创建CCViewController的子类,并调用它cocos2dViewController。 在cocos2dViewController.h复制并粘贴此:

#import "CCViewController.h"

@interface cocos2dViewController : CCViewController

@end

而在cocos2dViewController.m复制并粘贴(从普特南的教程)

#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

你会发现,我进口GamePlay.h,那是因为GamePlay.m是我有我的游戏中的所有内容。 因此,导入你的游戏的头文件。 另外你会看到,我打电话

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

请确保用包含你的游戏场景的名称来代替“游戏”。 一旦你这样做,去你AppDelegate.m并更换

application didFinishLaunchingWithOptions

有了这个功能:

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

你快到了! 现在为您的故事板文件,请按照Putnam的中提供的链接教程。 在那里,他说:“和它的类分配给我们刚刚创建的一个”,将其分配给cocos2dViewController。 就是这样! 运行该项目,它应该工作,如果不是随意问您有任何问题。



Answer 2:

你要爱我。

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

那么你得设置您的主要故事板在这里

关键是要瞄准你的主要情节串连图板在iOS应用中的一个创建,在“项目名称” /夏日/ iPhone / iPod的部署信息。 选择你的男人的故事板有

然后在AppDelegate.m删除代码,以便它看起来像这样:

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


return YES;
}

如果你不来的权利,我会给你我的工作的源代码,只是让我知道



Answer 3:

由于bagelboy,我只有一个更新:

    // 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];

对于我的情况下[[[UIApplication sharedApplication] keyWindow] bounds]没有工作,我用self.view.frame



文章来源: How to incorporate storyboards into a cocos2d 2.0 project?