【问题标题】:Cocos2d+Storyboards, how can I get a working project?Cocos2d+Storyboards,我怎样才能得到一个工作项目?
【发布时间】:2013-08-07 15:13:06
【问题描述】:

编辑: 接受/赏金给任何能告诉我如何制作一个项目的人:

  • 使用 Cocos2d 2.x
  • 有故事板
  • 有 ARC
  • 如果您提供模板的下载链接,将获得奖励

上一个问题变得一团糟,我自己已经解决了。如果有人想为我的项目制作一个更好的版本,赏金仍然可以争夺。

HERE IS A WORKING, CLEAN, READY-TO-USE TEMPLATE FOR ANYONE TO USE, COMPLETE WITH ARC, COCOS2D 2.1, STORYBOARDS AND EVERYTHING

在 Xcode 4、5、iOS 6、7 中测试,仅适用于 iPhone,但也应适用于 iPad。

我在做这个的时候很努力地寻找这个,所以我希望我能帮一个忙。归功于 Tiny Tim Games 和 https://stackoverflow.com/a/11801085/1701411 的自定义文件。我稍微修改了这些文件以使其正常工作。菜鸟的使用说明在项目自述文件中! :)

【问题讨论】:

    标签: ios xcode cocos2d-iphone interface-builder uistoryboard


    【解决方案1】:
    【解决方案2】:

    我也在努力解决这个问题。以下是我如何创建使用 Cocos2d-iphone 库的 iOS 项目(带有 ARC 和故事板)。

    1. 从模板创建新的 XCode Cocos2d iOS 项目
    2. 新建 XCode iOS 单视图应用项目
    3. 在Finder中,找到第一步创建的Cocos2d项目文件夹
    4. 在 XCode 中将 cocos2d 项目中的 libs 文件夹拖放到单视图应用程序项目中(出现提示时选择“复制文件”选项,并确保标记项目目标)

    在 iOS 单视图应用项目中:

    1. 转到Build Phases -> Compile Sources 并从 ProjectName/libs/ 文件夹中选择所有文件
    2. 双击右侧添加编译器标志
    3. 在 Compiler Flag 窗口中写入 -fno-objc-arc 以禁用该文件的 ARC(cocos2d lib 文件包含所有必要的内存管理代码,因此我们不需要 ARC)。
    4. 转到构建设置 9.. 在Header Search Paths 中添加:"libs/kazmath/include"(在 Finder 中进入项目文件夹并仔细检查路径)
    5. Other Linker Flags 添加:-lz -ObjC
    6. 剩下的就是添加必要的框架。转到 Build Phases 并打开 Link Binary With Libraries
    7. 必须添加此库(有些可能已经包含在内):
      • AVFoundation.framework
      • AudioToolbox.framework
      • OpenAL.framework
      • QuartzCore.framework
      • OpenGLES.framework
      • UIKit.framework
      • Foundation.framework
      • CoreGraphics.framework
    8. CMD+B 查看项目能否构建

    这里是示例项目:PROJECT TEMPLATE DOWNLOAD

    【讨论】:

      【解决方案3】:

      您没有提供任何代码来支持您的问题,但根据经验,您可以尝试使用self.view.bounds 而不是self.view.frame

      更新

      在您的视图控制器中为您的CCGLView 创建一个属性:

      @property (nonatomic) CCGLView *glView;
      

      然后创建一个您已经拥有的实例,但保存到您的属性中。

      [self setGlView:[[CCGLView alloc] initWithFrame:[[self view] bounds]];
      

      然后实现viewWillLayoutSubviews 并更新您的CCGLView 的框架以匹配。

      - (void)viewWillLayoutSubviews
      {
          [super viewWillLayoutSubviews];
      
          [[self glView] setFrame:[[self view] bounds]];
      }
      

      【讨论】:

      • 如果您查看链接的 SO 答案,您首先会看到代码。我觉得没有必要粘贴我在链接到解释它的源时没有创建的代码。问题不在于记录正确的屏幕尺寸,而是我的项目以某种方式认为它是纵向的。为了记录,CCViewController 似乎使用了.bounds
      • 我确实看过你链接的问题,但它没有使用view.frameview.bounds,我认为这可能会导致问题。
      • 您希望我在什么情况下使用view.frame?它在CCGLView *glView = [CCGLView viewWithFrame:[[[UIApplication sharedApplication] keyWindow] bounds]中的“cocos2dViewController.m”中使用但是当我在没有cocos2d的情况下记录UIView的大小时问题仍然存在,即使视图是横向的,为什么当我禁用它时顶部栏仍然存在?我认为某处发生了一些故事板/ xcode 有趣的事情。我还为问题中的项目添加了一个DL Link,请随意看看。
      • 对不起,我没有 Xcode 5。这可能是开发人员预览中的错误。我自己不使用故事板,因为根据经验,它们只会给我带来痛苦。
      • 我只是以编程方式完成所有操作。故事板是一个巨大的 PITA。根据您的另一个问题,我可能建议在 viewWillAppear 方法中调用您的 CCGLView viewWithFrame: 并传入 self.view.bounds 而不是 [[[UIApplication sharedApplication] keyWindow] bounds]
      猜你喜欢
      • 1970-01-01
      • 2015-12-15
      • 2015-06-08
      • 1970-01-01
      • 2018-04-28
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多