Добавить сцену cocos2d в UIViewController - PullRequest
4 голосов
/ 08 августа 2010

Я использую следующий код для добавления сцены cocos2d в viewcontroller

- (void)viewDidLoad {
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,480)];


    if( ! [CCDirector setDirectorType:CCDirectorTypeDisplayLink] )
        [CCDirector setDirectorType:CCDirectorTypeDefault];

    [[CCDirector sharedDirector] setPixelFormat:kPixelFormatRGBA8888];

    [CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888];


    [[CCDirector sharedDirector] setDeviceOrientation:kCCDeviceOrientationPortrait];
    [[CCDirector sharedDirector] setAnimationInterval:1.0/60];

    [[CCDirector sharedDirector] attachInView:self.view];
    ///adding HelloWorld scene to the view...
    [[CCDirector sharedDirector] runWithScene: [HelloWorld scene]];
    [super viewDidLoad];
}

А теперь мне нужно установить альфа-значение self.view .... так я и сделал ..

-(void)displaySharePage
{
    self.view.alpha=0;

}

Но он разбился ...... не знаю почему .... я получил сообщение ..

'Директор назначен.setDirectorType должен быть первым вызовом Director '

Может кто-нибудь помочь ..... заранее спасибо ..

Ответы [ 4 ]

3 голосов
/ 10 августа 2010

attachInView устарела. Попробуйте использовать setOpenGLView вместо этого. http://www.cocos2d -iphone.org / апи-исх / последний стабильный / interface_c_c_director.html # a87f9460b05b18b5c7726e1bdcbfe3eca

1 голос
/ 07 марта 2011
    @synthesize window;

- (void)loadView {
    // Initialization code
    CC_DIRECTOR_INIT();
    CCDirector *director = [CCDirector sharedDirector];
    //landscape
    [director setDeviceOrientation:kCCDeviceOrientationPortrait];
    [director setDisplayFPS:YES];

    //turn on multi-touch
    EAGLView *cocosView = [director openGLView];
    [cocosView setMultipleTouchEnabled:YES];

    self.view = cocosView;

    //default texture formats...
    [CCTexture2D  setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA8888];

    [[CCDirector sharedDirector] runWithScene:[MainGame scene]];
}
1 голос
/ 10 августа 2010
1 голос
/ 10 августа 2010

По ошибке похоже, что происходит одно из двух:

  1. viewDidLoad вызывается более одного раза.Вы можете проверить это, добавив оператор журнала или точку останова в начале метода.Это поможет вам найти основную причину.Вы должны убедиться, что код директора вызывается только один раз.Один из способов (не обязательно правильный) состоит в том, чтобы переместить вызов [CCDirector setDirectorType:] вашему делегату приложения.

  2. Вы вызываете [CCDirector setDirectorType:] где-то еще в своем коде.Это кажется маловероятным, но поиск будет полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...