如何将故事板合并到cocos2d 2.0项目中?

2023-12-13

我在 cocos2d 2.0 中做了一个项目,想使用故事板合并一个主菜单。

我在tinytimgames.com上尝试过Jerrod Putnam的教程(我无法提供链接,因为新用户每个帖子只允许有2个链接,但如果你用谷歌搜索“cocos2d Storyboard”,它就是第一个链接) 但这对我不起作用。我完全遵循了它(我认为)。我打开我的 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)的文件,因此我不确定将应该放入这些文件的代码放在哪里。

还有 Ray Wenderlich 的教程,但他不使用故事板。

如果有人能给我一个解决方案,解释为什么这些都不适合我,或者给我一步步详细介绍如何将故事板合并到我的 cocos2d 2.0 项目中,我将非常感激。另外,我的另一个问题是我应该从 cocos2d 2.0 项目开始并合并故事板,还是应该从单视图应用程序项目(或不同的项目?)开始并合并我的 cocos2d 2.0 部分。提前致谢!


好吧,在 Jerrod Putnam 的帮助下我终于弄清楚了,所以谢谢 Jerrod!首先在这里查看他的教程:

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

并从 github 链接下载并导入文件。然后创建 CCViewController 的子类并将其命名为 cocos2dViewController。在 cocos2dViewController.h 中复制并粘贴以下内容:

#import "CCViewController.h"

@interface cocos2dViewController : CCViewController

@end

并在 cocos2dViewController.m 中复制并粘贴此内容(来自 Putnam 的教程)

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

确保将“GamePlay”替换为包含您的游戏的场景的名称。完成此操作后,转到您的 AppDelegate.m 并替换您的

application didFinishLaunchingWithOptions

与此功能:

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

你快到了!现在,对于您的故事板文件,请按照提供的链接中的 Putnam 教程进行操作。他说“并将其类分配给我们刚刚创建的类”,将其分配给 cocos2dViewController。就是这样!运行该项目,它应该可以工作,如果没有,请随时提出您的任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将故事板合并到cocos2d 2.0项目中? 的相关文章

随机推荐

  • 我创建了一个自定义 powershell .psm1 模块,但编辑后它不会更新

    我在中创建了一个自定义的powershell模块 C Program Files WindowsPowerShell Modules PennoniAppManagement目录 每当我对模块中的函数进行更改 然后将模块导入到脚本中时 更新
  • AllowHtml 不适用于 ASP.Net Mvc 3 站点

    我们尝试在 ViewModel 属性之一上使用 AllowHtml 装饰 以便避免 YSOD 从以下位置检测到潜在危险的 Request Form 值 客户端 请求文本 br 当我们尝试提交 html 文本时 例如 br 然后我们希望在控制
  • PushBots 应用程序崩溃

    我正在制作一个 Android 应用程序 它使用 PushBots 来使用推送通知服务 我想要做的是 当我收到推送通知时 我想将消息保存在 TextView 中 以便我可以拥有所有收到消息的历史记录 我做了 PushBots 网站上写的所有
  • 如何使用 Orion 在传出通知中添加自定义标头?

    我阅读了 自定义通知 部分NGSv2 规范我仍然对如何进行这项工作存有疑问 我是否必须将以下代码作为有效负载放入订阅 POST 中 httpCustom url http foo com entity id headers Content
  • 如何从文件中删除与正则表达式不匹配的行?

    我有一个大文件 如下所示 7f0c41d6 f9c6 47aa a034 d40bc629c973 csv 159890 159891 24faaed6 62ee 4175 8430 5d73b09911c8 csv 159907 5bad
  • 如何在后台启动 PhantomJS + Selenium 窗口?

    我在我的应用程序中使用 selenium phantomjs 但我想在后台启动我的应用程序 selenium 和 phantomjs 窗口 我该怎么做 I tried PhantomJSOptions options new Phantom
  • 从 S3 传输到 Google 存储 - 密钥不正确

    过去几个小时我一直在尝试设置从 S3 到我的谷歌存储桶的传输 创建传输时 我不断收到的错误是 访问密钥无效 请确保 S3 存储桶的访问密钥正确 或将存储桶权限设置为授予所有人 访问密钥和秘密都是正确的 因为它们当前在生产中用于 S3 完全访
  • 一组中的 d3 矩形干扰另一组中的矩形

    我有一个小组叫groove它有两个矩形 这些与数据无关 我也有一个群叫group其中有许多与数据绑定的矩形 在第二组中称为group只有三个数据点 但只显示两个 为什么第一个没有被渲染 我以前见过这个 但不记得如何解决 var margin
  • JavaScript 绑定问题

    这是让我感到困惑的代码片段 var timer start function var self this Why the code below doesn t write to this window setInterval self ti
  • 模板类的 CUDA 链接器错误

    在 ubuntu 上使用 CUDA 5 0 和 gcc g 4 6 在使用模板链接 CUDA 代码时遇到错误 cu array cu include cu array hpp template
  • C# - 如何将图像转换为 8 位彩色图像?

    我需要将从文件加载的 PNG 图像转换为另一个设备使用的每像素 8 位字节数组 嵌入式编程 我正在逐像素复制到使用 16 位颜色创建的新图像中 Format16bppRgb565 但是我需要Format8bpp NET Framework
  • Java 中的修剪字符

    如何在 Java 中修剪字符 e g String j joe jill Trim new char j应该 乔 吉尔 String j jack joe jill Trim jack j应该 乔 吉尔 etc 阿帕奇共享区有一个伟大的St
  • UISearchDisplayController隐藏导航栏

    我看到一个奇怪的情况 我在导航栏中放置了一个搜索栏 并将 UISearchDisplayController 与搜索栏链接起来 现在 当用户单击搜索栏时 搜索显示控制器倾向于隐藏导航栏 因此也隐藏搜索栏 为了解决这个问题 我对 UISear
  • CDI Eager Application 作用域 bean

    Since ManagedBean eager true 将被弃用 您如何创建eager 应用程序范围的 cdi bean 通过使用 CDI 扩展框架解决了这个问题 创建预选赛 Qualifier Target value ElementT
  • 将两个数据库表合二为一?

    在将关系数据库建模为库存管理系统时 我遇到了一些麻烦 目前 它只有 3 个简单的表 Product ID Name Price 收入 ID Date Quantity Product ID FK Sales ID Date Quantity
  • 如何将 Joda-Time DateTimeFormat.forStyle() 转换为 JSR 310 Java 时间?

    我正在将 Grails Joda Time 插件转换为JavaTime 我有旧的乔达时间代码 如下所示 def style switch type case LocalTime style S break case LocalDate st
  • Java:递归查找列表中的最小元素

    我会先说这是家庭作业 我只是在寻找一些指示 我一直在为这个问题绞尽脑汁 但我一生都没有明白 我们被要求找到列表中的最小元素 我知道我在这里需要一个子列表 但之后我不确定 任何指示都会很棒 谢谢 Find the minimum elemen
  • Metal RGB 到 YUV 转换计算着色器

    我正在尝试编写一个 Metal 计算着色器来从 RGB 转换为 YUV 但遇到构建错误 typedef struct float3x3 matrix float3 offset ColorConversion Compute kernel
  • 如何检测页面是否为 RSS 或 ATOM 提要

    我目前正在用 PHP 构建一个新的在线 Feed 阅读器 我正在开发的功能之一是提要自动发现 如果用户输入网站 URL 脚本将检测到它不是提要 并通过解析 HTML 来查找正确的提要 URL tag 问题是 我目前检测 URL 是否为提要或
  • 如何将故事板合并到cocos2d 2.0项目中?

    我在 cocos2d 2 0 中做了一个项目 想使用故事板合并一个主菜单 我在tinytimgames com上尝试过Jerrod Putnam的教程 我无法提供链接 因为新用户每个帖子只允许有2个链接 但如果你用谷歌搜索 cocos2d