Spritebuilder和CCScrollView,页面指示不显示?

时间:2014-04-16 03:34:08

标签: ios cocos2d-x cocos2d-x-3.0 spritebuilder ccscrollview

我正在使用Spritebuilder制作我的游戏,而CCScrollView通常会节省我很多时间。我试图以与iphone上的主屏幕使用UIScrollView相同的方式实现滚动视图。我希望页面指示器可见,并在滚动页面时更改(iOS 7的小白点)。

在Spritebuilder中,我将CCScrollView设置为CCNode的子级。然后我将内容节点设置为我的另一个ccbi文件EasyPackpage1。当我运行我的项目时,一切都运行良好。 我目前有一个足够大的内容节点,因此它有三个不同的页面,所以如果我向右滚动它会锁定到下一页,再次向右滚动,它会锁定到下一页。唯一的问题是页面指示符不存在。我如何获得这些页面指示符?

如果有人知道使用纯代码执行此操作的解决方案,那么也将非常感激。 Cocos2d v3仍然只有很少的文档,我还没有找到很多关于如何使用CCScrollView的内容,因为看起来CCScrollLayer在v3中已被弃用。

enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您需要创建自己的自定义页面指示器。我所做的是为所有将要显示的页面添加小图像,当滚动视图结束减速时,我在选定和未选择的点图像之间进行切换。

- (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中添加的所有图像。