大佬教程收集整理的这篇文章主要介绍了ios7 – SpriteNode不遵循cgpath,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
- (void)createSceneContents{ self.BACkgroundColor = [SKColor blackColor]; self.scaleMode = SKScenescaleModeAspectFit; // CREATinG THE CAR and thE TRACK SKSpriteNode *myCar = [self newcar]; myCar.position = [[self trackShape] position];; [self addChild:myCar]; SKShapeNode *track = [self trackShape]; track.position = CGPointMake(48,40); [self addChild:track]; } - (SKSpriteNode *)newcar{ // GENERATES A RECTANGLE FOR THE SPRITE NODE SKSpriteNode *hull = [[SKSpriteNode alloc] initWithColor:[SKColor grayColor] size:CGSizeMake(20,50)]; CGPathRef pathRef = [[self bPath] CGPath]; // CAR SHOULD FOLLOW THE TRACK // OK ONLY ON THE FIRST LAP SKAction *hover = [SKAction sequence:@[[SKAction followPath:pathRef duration:20.0],]]; hull.physicsBody = [SKPhysicsBody bodyWithRectangLeofSize:hull.size]; hull.physicsBody.dynamic = NO; [hull runAction: [SKAction repeatActionForever:hover]]; return hull; } -(SKShapeNode *)trackShape{ SKShapeNode *newshape = [[SKShapeNode alloc] init]; newshape.position = CGPointMake(48,40); newshape.path = [[self bPath] CGPath]; newshape.fillColor = [SKColor clearColor]; newshape.strokeColor = [SKColor blueColor]; newshape.lineWidth = 8; return newshape; }
这是路径…它都在同一个班级.
-(UIBezierPath *)bPath{ UIBezierPath* bezierPath = [UIBezierPath bezierPath]; [bezierPath moveToPoint: CGPointMake(48,40)]; [bezierPath addLineToPoint: CGPointMake(10.5,147.5)]; [bezierPath addCurveToPoint: CGPointMake(131.5,209.5) controlPoint1: CGPointMake(10.5,147.5) controlPoint2: CGPointMake(45.01,253.16)]; [bezierPath addCurveToPoint: CGPointMake(267.5,209.5) controlPoint1: CGPointMake(217.99,165.84) controlPoint2: CGPointMake(259.57,194.46)]; [bezierPath addCurveToPoint: CGPointMake(283.5,302.5) controlPoint1: CGPointMake(275.43,224.54) controlPoint2: CGPointMake(325.48,263.29)]; [bezierPath addCurveToPoint: CGPointMake(105.5,327.5) controlPoint1: CGPointMake(241.52,341.71) controlPoint2: CGPointMake(128.94,352.5)]; [bezierPath addCurveToPoint: CGPointMake(10.5,396.5) controlPoint1: CGPointMake(82.06,302.5) controlPoint2: CGPointMake(-27.5,333.95)]; [bezierPath addCurveToPoint: CGPointMake(239.5,448.5) controlPoint1: CGPointMake(48.5,459.05) controlPoint2: CGPointMake(195.5,463.67)]; [bezierPath addCurveToPoint: CGPointMake(283.5,40.5) controlPoint1: CGPointMake(399.5,40.5) controlPoint2: CGPointMake(375.39,205.99)]; [bezierPath addCurveToPoint: CGPointMake(153.5,78.5) controlPoint1: CGPointMake(191.61,-124.99) controlPoint2: CGPointMake(153.5,78.5)]; [bezierPath addLineToPoint: CGPointMake(48,40)]; [bezierPath closePath]; return bezierPath; }
我不得不调整你的音轨的位置,但它似乎工作.
- (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]]; }
在trackShape方法中,将位置设置为0,0
newshape.position = CGPointMake(0,0);
以上是大佬教程为你收集整理的ios7 – SpriteNode不遵循cgpath全部内容,希望文章能够帮你解决ios7 – SpriteNode不遵循cgpath所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。