After a while, this is my results
I scrapped your car method, and just placed it all within this.
I had to tweak the position of your track, but it seems to work.
- (void)createSceneContents{
self.backgroundColor = [SKColor blackColor];
self.scaleMode = SKSceneScaleModeAspectFit;
SKSpriteNode *hull = [[SKSpriteNode alloc] initWithColor:[SKColor grayColor] size:CGSizeMake(20,50)];
CGPathRef pathRef = [[self bPath] CGPath];
SKShapeNode *track = [self trackShape];
//track.position = // scrap me.. is set in track shape method
[self addChild:track];
hull.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:hull.size];
hull.physicsBody.dynamic = NO;
hull.position = CGPointMake(48, 40);
[self addChild:hull];
SKAction *hover = [SKAction followPath:pathRef asOffset:NO orientToPath:YES duration:5.0];
[hull runAction: [SKAction repeatActionForever:hover]];
}
In your trackShape method, set the position to 0,0
newshape.position = CGPointMake(0, 0);