SpriteKit和Scrollable列表

时间:2014-06-05 19:54:19

标签: ios objective-c sprite-kit

我一直试图找出一种“简单”的方法来为我的SpriteKit游戏提供可滚动的垂直列表。

我将使用它来实现我的游戏的商店/升级部分,所以我希望用户能够向下滚动列表以查看可能的不同升级。

我已经看过很多关于将UIScrollView集成到SpriteKit中的帖子,但大多数帖子似乎都在滚动整个屏幕。

到目前为止我所拥有的是:

-(void) createSceneContents
{
    [super createSceneContents];




    _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10,100, 250, 200)];
    _scrollView.contentSize                     = CGSizeMake(2000, 120);
    _scrollView.scrollEnabled                   = YES;
    _scrollView.showsHorizontalScrollIndicator  = YES;
    _scrollView.backgroundColor                 = [UIColor brownColor];

    [self.view addSubview:_scrollView];

    //Test sprites for scrolling and zooming
    SKSpriteNode *greenTestSprite = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor]
                                                                 size:CGSizeMake(25, 25)];
    [greenTestSprite setName:@"greenTestSprite"];
    greenTestSprite.position = CGPointMake(25, 125);



    [self addChild:greenTestSprite];

    //[self addChild: [self newMenuNode]];
}

我正在努力想到能够将绿色测试精灵添加到UIScrollView中的最简单方法。我无法理解其他人这样做的方式,因为他们似乎正在连接UIScrollView与SKView的滚动,使屏幕看起来像滚动。

我确信有一种更简单的方法可以做到这一点,但现在已经找了一段时间。

任何帮助都将不胜感激。

提前感谢分配。

2 个答案:

答案 0 :(得分:7)

如果可能,我会避免使用UIKit组件。如果UIView成为UIKit组件的父级,则很难与SpriteKit中的SKView组件进行互动。子类化SKNode并使用SKView上的手势识别器创建“ScrollingNode”进行滚动非常容易。这是一个例子:

https://github.com/JenDobson/SpriteKitScrollingNode

另一个值得关注的好教程是http://www.raywenderlich.com/44270/sprite-kit-tutorial-how-to-drag-and-drop-sprites。在手势识别器上转到最后的部分。

答案 1 :(得分:1)

您可以在UIKit申请中使用SpriteKit

如果您使用UIScrollView,您最终将不得不弄清楚重复使用单元格,布局,用户交互等等。您实际上可以使单元格看起来相当不错(并且如果您只使用(并自定义)UIView

,则单元格为UITableView,因此您可以在其中删除一堆子视图)

您的层次结构将是:

场景:       的TableView