A simple tile scroller following a UITableView's datasource pattern to get the content. It can be extended to support tiled maps.
This project is under development and probably not ready for production
RPTileScroller is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'RPTileScroller', '~> 0.2'
Import the library
#import <RPTileScroller.h>
Instance and configure it
_tileScroller = [[RPTileScroller alloc] initWithSize:view.bounds.size];
_tileScroller.position = CGPointMake(0,0);
_tileScroller.dataSource = self;
_tileScroller.tileSize = CGSizeMake(16, 16);
_tileScroller.backgroundNode.color = [UIColor blackColor];
Implement tileScroller:nodeForIndex:
in the DataSource
- (SKNode *)tileScroller:(RPTileSc roller *)tileScroller nodeForIndex:(RPIndexPoint)index
{
//Use different identifiers for reusing nodes with the same content (like a tile map).
NSString *idt = @"Your node identifier";
SKSpriteNode *node = (SKSpriteNode *)[tileScroller dequeueReusableNodeWithIdentifier:idt];
if(!node)
{
node = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:tileScroller.tileSize];
node.identifier = idt;
//Configure your node here for position index.x,index.y
}
return node;
}
Call the update method every scene update.
- (void)update:(CFTimeInterval)currentTime
{
[_tileScroller update:currentTime];
}
Scroll it!
_tileScroller.moveVector = CGVectorMake(15,15);
RPTileScroller is available under the MIT license. See the LICENSE file for more info.