0

いくつかの UIKit ビューの上に cocos2d シーンを作成しようとしています。cocos2d 2.0 CCDirector は UIViewController のサブクラスであることを理解しているので、それをサブビューとして追加するだけです。

appDelegate でシーンへの切り替えを処理するためにこの関数を作成しました (現在、http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit に続く MainWindow.xib のデリゲートです)。 :

- (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

UINavigationController を作成して問題を解決しました

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

どのように見せたいのかよくわかりませんが、CCDirector のビューが時計回りに 90 度回転しているようです。これには、いくつかの理由が考えられます。

  1. ビューを間違って追加します (つまり、時計回りに 90 度回転)
  2. デバイスを回転させましたが、CCDirector は回転しませんでした (この場合、向きのパラメーターと、誰が、何を回転させるかを確認する必要があります。アプリは回転するが、CCDirector は回転フラグを受信しない可能性があります)。
  3. CGAffineTransformRotate を使用して CCDirector ビューを回転できます (よくわかりませんが、CCDirector は UIViewController のサブクラスであるため、動作するはずです)。
于 2013-04-22T11:16:01.480 に答える