1

私はいくつかのグーグルとスタックオーバーフローを行いましたが、それでも何をすべきかという疑問が残りました. iPhone用の大きなナビゲーションベースのプロジェクト、iOS5.1があります。いくつかの VC では、男の子のキャラクターが咀嚼するアニメーションなど、多かれ少なかれ複雑なアニメーションを含める必要があります。私は cocos2d を使用してきましたが、cocos2d で目標を達成するのは非常に簡単であることを知っています。しかし、必要な VC に coco2sd を使用したシーンとレイヤーを何らかの方法で含めることは可能ですか? またはどういうわけかビューを s シーンと重ね合わせますか? どんなヒントでも大歓迎です。

4

2 に答える 2

2

私がこれを行った方法は、ViewController を初期化するときに CCDirector を作成することです。CCDirector は、ViewController のサブビューを作成する OpenGL ビューを使用します。CCDirector があれば、通常 Cocos2D で行うすべてのことができます。

if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
    [CCDirector setDirectorType:kCCDirectorTypeMainLoop];

CCDirector *director = [CCDirector sharedDirector];

EAGLView *glview = [EAGLView viewWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];

[self.view insertSubview:glview atIndex:1];
[director setOpenGLView:glview];
于 2012-09-11T08:56:17.730 に答える
1

まず、AppDelegate でディレクターを作成する必要があります。

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

  // Create Cocos2D Director
  //
  // Try to use CADisplayLink director
  // if it fails (SDK < 3.1) use the default director
  if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
    [CCDirector setDirectorType:kCCDirectorTypeDefault];

  CCDirector *director = [CCDirector sharedDirector];
}

-viewDidLoadメソッドで、Cocos2D によって作成されたビューをself.viewサブビューとして追加します。

- (void)viewDidLoad {
  [super viewDidLoad];

  // configre subviews
  // ...

  // Add your Cocos2D view
  EAGLView * glView = [EAGLView viewWithFrame:self.view.bounds
                                  pixelFormat:kEAGLColorFormatRGB565
                                  depthFormat:0];
  [glView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
  [[CCDirector sharedDirector] setOpenGLView:glView];
  [self.view addSubview:glView];

  // Run a blank scene for testing
  CCScene * blankScene = [CCScene node];
  [[CCDirector sharedDirector] runWithScene:blankScene];
}

その後、独自のシーンを作成して置き換えることができますblankScene


この技術に関する記事「Cocos2D と UIKit を統合する方法」を強くお勧めします。@Rayの投稿を読んで、これをうまく実装しました! ;)

于 2012-09-11T09:02:37.177 に答える