Проблемы CCScrollLayer в cocos2d - PullRequest
2 голосов
/ 02 апреля 2012

У меня возникла эта проблема, попробуйте использовать cocos2d CCScrollLayer

Я добавил классы CCScrollLayer в свою сцену, и у меня возникли следующие 3 проблемы: 1. Это не касание 2. Это ставитфоны (горизонтальные) друг на друга, например: страница1 на месте, но страница2 находится в верхней части половины экрана, поэтому я вижу половину страницы1, половину страницы2.3. Точки в нижней части, которые показывают, на какой странице я сейчас нахожусь - могу ли я их устранить или переместить в другое место?

большое спасибо.

код:

CGSize screenSize = [CCDirector sharedDirector].winSize;
        // PAGE 1
        CCLayer *page1 = [[CCLayer alloc] init];
        BACK.position=ccp(screenSize.width/2 ,screenSize.height/2);
         [page1 addChild:BACK];
        // PAGE 2
        CCLayer *page2 = [[CCLayer alloc] init];
        BACK1.position=ccp(screenSize.width/2,screenSize.height/2);
        [page2 addChild:BACK1];
        // PAGE 3
        CCLayer *page3 = [[CCLayer alloc] init];
        BACK1.position=ccp(screenSize.width/2,screenSize.height/2);
        [page3 addChild:BACK2];

        CCScrollLayer *scroller = [[CCScrollLayer alloc] initWithLayers:[NSMutableArray arrayWithObjects: page1,page2, nil] widthOffset: 230];

        // finally add the scroller to your scene
        [self addChild:scroller];

и источник классов:

Ответы [ 2 ]

0 голосов
/ 21 апреля 2012

Если вы используете cocos2d v. 1.1b2, убедитесь, что у вас установлена ​​последняя версия файла CCTouchDispatcher.m. Если нет, обновите ваш файл до этого: https://github.com/cocos2d/cocos2d-iphone/blob/develop/cocos2d/Platforms/iOS/CCTouchDispatcher.m и соответствующий * .h файл https://github.com/cocos2d/cocos2d-iphone/blob/develop/cocos2d/Platforms/iOS/CCTouchDispatcher.h

0 голосов
/ 02 апреля 2012

Ответы на три вопроса:

  1. Установите точку останова в CCScrollLayer's ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event, чтобы убедиться, что он не получает касания.
  2. CCScrollLayer намеренно перекрывает слои. Если вы хотите, чтобы только один слой на экране за раз, увеличьте значение свойства scrollWidth_ CCScrollLayer. В противном случае вам придется уменьшить фоновые изображения, чтобы они не перекрывались.
  3. Я предлагаю изменить класс CCScrollLayer, чтобы удалить или переместить точки.
...