Spritebuilder и CCScrollView, индикаторы страницы не отображаются?
Я использую Spritebuilder для создания своей игры, и CCScrollView обычно экономит мне немного времени. Я пытаюсь реализовать представление прокрутки так же, как домашний экран на iphone использует UIScrollView. Я хочу, чтобы индикаторы страницы были видны и менялись при прокрутке страниц (маленькие белые точки для iOS 7).
В Spritebuilder я настроил CCScrollView как дочерний элемент CCNode. Затем я устанавливаю узел содержимого на другой из моих файлов ccbi, EasyPackpage1
, Когда я запускаю свой проект, все работает довольно хорошо. В настоящее время у меня есть достаточно большой узел содержимого, чтобы на нем было три разных страницы, поэтому, если я прокручиваю вправо, он фиксируется на следующей странице, снова прокручивается вправо, он фиксируется на следующей странице. Единственная проблема в том, что индикаторы страницы отсутствуют. Как я могу получить эти показатели страницы?
Если кто-то знает решение для этого, используя чисто код, это также будет высоко ценится. Cocos2d v3 до сих пор имеет очень мало документации, и я не смог найти много о том, как использовать CCScrollView, так как похоже, что CCScrollLayer устарела в v3.
Спасибо за помощь!
1 ответ
Вам необходимо создать свои собственные индикаторы страницы. Что я сделал, так это добавил маленькие изображения для всех страниц, которые будут показаны, и я переключаюсь между выбранным и невыбранным точечным изображением, когда представление прокрутки заканчивается замедляясь.
- (void)scrollViewDidEndDecelerating:(CCScrollView *)scrollView {
NSInteger page = scrollView.scrollPosition.x / 320;
for (int i = 0; i < self.dotArray.count; i++) {
if (i == page) {
[[self.dotArray objectAtIndex:i] setSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"ccbResources/nav-dot-active.png"]];
} else {
[[self.dotArray objectAtIndex:i] setSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"ccbResources/nav-dot.png"]];
}
}
}
Убедитесь, что ваша сцена установлена как CCScrollViewDelegate и установлена:
self.scrollView.delegate = self;
Используемый мной self.dotArray только что инициализирован в didLoadFromCCB со всеми изображениями, которые я добавил в spriteBuilder.