我正在使用SKShapeNode创建类似山的对象。我使用CGMutablePathRef将点给予我的路径。
SKShapeNode *shapenode = [[SKShapeNode alloc] init];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
......
for (int i = 0; i < [refData count];i++) {
CGPathAddLineToPoint(path, NULL, ((float)i/[refData count])*screenWidthBoundry, [[refData objectAtIndex:i] doubleValue]);
}
CGPathAddLineToPoint(path, NULL, screenWidthBoundry, 0);
CGPathAddLineToPoint(path, NULL, 0, 0);
shapenode.path = path;
shapenode.antialiased = YES;
shapenode.fillColor = [SKColor colorWithRed:17.0/255.0 green:108.0/255.0 blue:125.0/255.0 alpha:1.0];
//shapenode.strokeColor = [UIColor clearColor];
shapenode.lineWidth = 1.0f;
shapenode.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:path];
shapenode.physicsBody.affectedByGravity = NO;
shapenode.physicsBody.categoryBitMask = CollisionTypeMountain;
shapenode.physicsBody.collisionBitMask = 0;
shapenode.physicsBody.contactTestBitMask = CollisionTypeBird;
CGPathRelease(path);
return shapenode;
我的问题是SkShapeNode在iPhone 4上减缓了动画速度(在iPad和iPhone 5上运行顺畅,但仍未达到60 fps),同时消耗了大量内存。我能否缓存skshapnode对象以使动画顺畅运行?任何帮助都将不胜感激!