2012-09-19 15 views
7

Kiedy wywołuję CGSize winSize = [[CCDirector sharedDirector]winSize]; w cocos2d z metody init kontrolera widoku root i nslog "winSize" zaraz po tym, jak raportuje, że ekran jest portretowy, gdy w rzeczywistości jest w krajobrazie. Ten błąd nie występuje, gdy wywołasz go z - (void) onEnter lub z widoku, który został załadowany z widoku głównego. Widzę, że kilka innych osób ma ten problem po przeszukaniu problemu, ale nikt tak naprawdę nie wie, jak to naprawić, lub odpowiedź nie dotyczy mnie.[[CCDirector sharedDirector] winSize] jest nieprawidłowy

Odpowiedz

12

Tak, jest to jeden z poważniejszych problemów w cocos2D 2.0. Kiedy próbuję użyć metody init pierwszej sceny.

Zamiast init spróbuj onEnter.

-(void)onEnter 
{ 
    [super onEnter]; 
    CGSize winSize = [[CCDirector sharedDirector]winSize]; 

    //Place all your init functions here. 
} 

Uwaga: W iphone5, brakuje [email protected] również spowodować zły rozmiar !!! Cocos2d 3,0:

CGSize S = [[CCDirector sharedDirector] viewSize];

+2

Działa świetnie, dziękuję! – Shredder2794

+0

tak ... ale jak uzyskać rozmiar wewnątrz inicjału pierwszej sceny? – Andrew

+1

zaktualizuj swój kokos2d do nowej wersji. W nowej wersji działa świetnie. – Guru

Powiązane problemy