Одушевленный предмет UIKit с переходом сцены - PullRequest
2 голосов
/ 05 декабря 2011

Я добавил пару элементов UIKit в свой слой, UITableView и UITextField.

Как мне анимировать эти элементы с остальной частью сцены во время перехода?

Я пробовал добавить оба элемента через CCDirector,

[[[CCDirector sharedDirector] openGLView] addSubview:tableView];

А также с использованием класса CCUIViewWrapper.

В любом случае элементы cocos2d все переходят, но элементы UIKit остаются на экране и не анимируются с остальной частью экрана.

HelloWorldLayer *scene = (HelloWorldLayer *)[HelloWorldLayer scene];
[[CCDirector sharedDirector] replaceScene:[CCTransitionZoomFlipX transitionWithDuration:0.5 scene:(CCScene *)scene]];

Просто для тестирования я использовал пример вращающейся кнопки, показанный здесь: http://www.cocos2d -iphone.org / форум / тема / 6889 и добавил приведенный выше код replaceScene к действию кнопки.

если вы также добавите CCLabelTTF на экран, вы заметите, что метка оживляется при переходе, а кнопка - нет.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Существует четыре различных типа directors в Cocos2D. Некоторые поддерживают UIKit, а другие нет. Возможно, ваша проблема будет решена путем создания другого объекта Director.

0 голосов
/ 05 декабря 2011

Я столкнулся с той же проблемой с UIWebView, мне пришлось использовать анимацию UIView для их перемещения

[UIView animateWithDuration:1.0f animations:^{
        //Animation

    }completion:^(BOOL finished) {
        if(finished){
            //Completed
        }
    }];

Хотя, BE WARNED блок анимации UIViewанимация на другой скорости по сравнению с:

[[CCDirector sharedDirector] replaceScene:[CCTransitionZoomFlipX transitionWithDuration:0.5 scene:(CCScene *)scene]];

Мне еще предстоит найти идеальное решение, но я обнаружил, что, как я анимировал UIView, если я затухал, как я анимировал его, он сделал этовыглядят намного более гладкими

...