1

我正在使用 Spritebuilder 来制作我的游戏,CCScrollView 通常会为我节省不少时间。我正在尝试以与 iphone 上的主屏幕使用 UIScrollView 相同的方式来实现滚动视图。我希望页面指示器在您滚动页面时可见并发生变化(iOS 7 的小白点)。

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

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

在此处输入图像描述

谢谢您的帮助!

4

1 回答 1

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 中添加的所有图像进行了初始化。

于 2015-07-28T18:53:23.470 回答