I would make a sub-class of SKSpriteNode. Each instance could hold its own texture(image) and possibly the numbers, playerImages, etc as children.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event to handle the touch events. Make sure that the sub-class includes:
self.userInteractionEnabled = YES;
Each sprite includes a userData dictionary. You can use it for custom info for each sprite: playerOwnership? landType? etc.
There are many options here. I'd suggest creating your own custom init Method. Here's one I wrote:
-(id)initForPlayer:(NSInteger)forPlayerNumber inScene:(id)theScene xMax:(NSInteger)xMMax xMin:(NSInteger)xMMin yMax:(NSInteger)yMMax yMin:(NSInteger)yMMin
self = [super init];
- your code here -
as long as your first word of the method is lower case "init", you can add as many Parameters as you need. Your return type could be SKSprite*.
You can give each instance some Properties that can be changed from the parent, like background image.
I'd create / store these in an array in the parent to be able to access them individually.in the parent