iOS用SpriteKit写动画

这个类要放在skview上 ————>

/* Setup your scene here */

- (void)addNodeWithScene:(NSString *)filePath{

dispatch_async(dispatch_get_global_queue(0, 0), ^{

NSFileManager * fileManager = [NSFileManager defaultManager];

NSString  *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

NSString *directryPath = [path stringByAppendingPathComponent:filePath];

//当前文件夹下所有文件的名字

NSArray *tempFileList = [[NSArray alloc] initWithArray:[fileManager contentsOfDirectoryAtPath:directryPath error:nil]];

// 得到本地沙盒中名为"MyImage"的路径,"MyImage"是保存的图片名

self.backgroundColor = [SKColor clearColor];

_ShoesNode = [[SKNode alloc]init];

_ShoesNode.position = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2);

NSMutableArray *walkFrames = [NSMutableArray array];

for (int i = 0; i <= tempFileList.count; i++) {

NSString *imageFilePath = [directryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%d",filePath,i]];

UIImage *animationImage = [UIImage imageWithContentsOfFile:imageFilePath];

if (animationImage) {

DebugLog(@"%@",animationImage);

SKTexture *temp  = [SKTexture textureWithImage:animationImage];

temp.filteringMode = SKTextureFilteringNearest;

[temp preloadWithCompletionHandler:^{

DebugLog(@"啊啊啊啊啊啊啊");

}];

[walkFrames addObject:temp];

}

}

_bearWalkingFrames = walkFrames;

dispatch_async(dispatch_get_main_queue(), ^{

_bear = [SKSpriteNode new];

_bear.size = [[UIScreen mainScreen] bounds].size;

[_ShoesNode addChild:_bear];

[self addChild:_ShoesNode];

[self walkingBear];

});

});

}

-(void)walkingBear{

//播放纹理动画

[_bear runAction:[SKAction repeatAction:

[SKAction animateWithTextures:_bearWalkingFrames

timePerFrame:0.1f

resize:NO

restore:YES] count:1] completion:^{

NSLog(@"执行完毕");

[_ShoesNode removeAllChildren];

_ShoesNode = nil;

NSNotification *notification =[NSNotification notificationWithName:LastAnimationFinished object:self userInfo:nil];

[[NSNotificationCenter defaultCenter] postNotification:notification];

}];

}

- (void)dealloc{

[[NSNotificationCenter defaultCenter] removeObserver:self];

}

你可能感兴趣的:(iOS用SpriteKit写动画)