Ios 如何将值的设置键与SpriteKit一起使用?

Ios 如何将值的设置键与SpriteKit一起使用?,ios,objective-c,ios7,sprite-kit,Ios,Objective C,Ios7,Sprite Kit,我正在用SpriteKit制作一个平台游戏,我正在尝试使用方法setValue:forKey: touchsmoved:withEvent方法的内部,因为我有一团乱麻:我需要删除类型为SKAction的动画。我在touchsmoved:withEvent中用if运行这个SKAction动画,检查所有需要的条件。其中一个条件是: if(NO ==[[self childNodeWithName:@"hero"] hasActions]) { //code to run animation

我正在用SpriteKit制作一个平台游戏,我正在尝试使用方法
setValue:forKey:
touchsmoved:withEvent
方法的内部,因为我有一团乱麻:我需要删除类型为
SKAction
的动画。我在
touchsmoved:withEvent
中用if运行这个
SKAction
动画,检查所有需要的条件。其中一个条件是:

if(NO ==[[self childNodeWithName:@"hero"] hasActions])
{
     //code to run animation
}
我检查它是否没有动作,因为我不想创建比需要更多的动画。 当我用手指触摸屏幕时,动画将永远运行,只有当我在
touchesend:withEvent
方法中将手指从屏幕上移除时,动画才会移除

因此,在我触摸屏幕之前,英雄动画将永远循环。我的问题是,如果我将手指从屏幕的右侧移动到屏幕的左侧,动画仍然是一样的:英雄向右奔跑,即使精灵向左移动,因为如果检查是否有动作,并且不在左侧创建新动画,当然,不要删除正确的动画


我想我可以为动画动作设置一个关键点,然后用相同的方法使用if和手指的位置删除它。问题是我不知道如何使用
removeActionForKey
方法。我试着阅读文档,但我觉得不是很清楚。有人能给我发一些如何使用它的代码示例吗?

您需要使用
runAction:withKey:
方法:

// if direction == right
[node removeActionForKey:@"left"];
SKAction *animationRight = [SKAction animateWithTextures:......];
[node runAction:animationRight withKey:@"right"];

...........

// if direction == left
[node removeActionForKey:@"right"];
SKAction *animationLeft = [SKAction animateWithTextures:......];
[node runAction:animationLeft withKey:@"left"];