0

我正在尝试在一些 UIKit 视图之上制作 cocos2d 场景。我知道 cocos2d 2.0 CCDirector 是 UIViewController 的子类,因此我可以将其添加为子视图。

我已经编写了这个函数来处理在我的 appDelegate 中切换到一个场景(目前这是我的 MainWindow.xib 的代表http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit) :

- (void)switchToScene
{
    self.viewController = [CCDirector sharedDirector];

    [[CCDirector sharedDirector] view].center = self.window.center;

    [self.window addSubview:[self.viewController view]];

    [[CCDirector sharedDirector] runWithScene:[CCTransitionSlideInL transitionWithDuration:1 scene:[BattleLayer scene]]];
}

所以我从这段代码中遗漏了很多东西。但是有了这个,我得到了一些相似的场景来加载http://i.stack.imgur.com/pubWE.png

我的问题是:

1:如果我朝着正确的方向前进

2:如果是,下一步是手动调整场景的方向吗?

2.1:我该怎么做:)

4

2 回答 2

0

我不确定您希望它看起来如何,但似乎 CCDirector 的视图顺时针旋转了 90 度。这可能是由于以下几个原因:

  1. 您添加错误的视图(即顺时针旋转 90 度)
  2. 您旋转了设备并且 CCDirector 没有旋转(在这种情况下,您应该查看方向参数以及旋转的对象和对象。可能是应用程序旋转但 CCDirector 没有收到旋转标志)。
  3. 您可以使用 CGAffineTransformRotate 旋转 CCDirector 视图(我不确定..但因为 CCDirector 是 UIViewController 的子类..它应该可以工作)。
于 2013-04-22T11:16:01.480 回答
0

我通过创建 UINavigationController 解决了这个问题

- (void)switchToScene:(CCScene *)sceneObj
{
    navController_ = [[UINavigationController alloc] initWithRootViewController:director_];
    [window_ setRootViewController:navController_];
    [[CCDirector sharedDirector] pushScene:sceneObj];
}
于 2013-04-22T21:59:59.117 回答