Ios 为什么不是';这个SKT动作移动BYX:y:duration:移动这个精灵吗?

Ios 为什么不是';这个SKT动作移动BYX:y:duration:移动这个精灵吗?,ios,ios7,sprite-kit,Ios,Ios7,Sprite Kit,我试图回应场景中的滑动手势,并移动一个精灵作为回应。精灵显示在屏幕的左侧。handleSwipeRight中的logging语句将转到日志。但是精灵一点也不动。我肯定只是错过了一些基本的动作 这是我的场景代码: MFFMyScene.h: #import <SpriteKit/SpriteKit.h> @interface MFFMyScene : SKScene <UIGestureRecognizerDelegate> @property (nonatomic) S

我试图回应场景中的滑动手势,并移动一个精灵作为回应。精灵显示在屏幕的左侧。handleSwipeRight中的logging语句将转到日志。但是精灵一点也不动。我肯定只是错过了一些基本的动作

这是我的场景代码:

MFFMyScene.h:

#import <SpriteKit/SpriteKit.h>

@interface MFFMyScene : SKScene <UIGestureRecognizerDelegate>
@property (nonatomic) SKSpriteNode *player;
@property (nonatomic) UISwipeGestureRecognizer * swipeRightGesture;
@property (nonatomic) UISwipeGestureRecognizer * swipeLeftGesture;
@property (nonatomic) UISwipeGestureRecognizer * swipeUpGesture;
@property (nonatomic) UISwipeGestureRecognizer * swipeDownGesture;
@end

使您的属性强大,例如,使用setter让系统为您进行正确的内存管理

@property (nonatomic, strong) UISwipeGestureRecognizer *rightSwipe; 
self.rightSwipe = /* init code here */
检查刷卡手势状态:

- (void)swipeHandled:(UISwipeGestureRecognizer *)sender
{
   if (sender.state == UIGestureRecognizerStateRecognized) {
      if (sender.direction == UISwipeGestureRecognizerDirectionRight) {
          /* moving code here */
      }
   }
}

我把这个动作用错了。我正在寻找一个可以“每z秒移动x/y”或“每帧移动x/y z秒”的SKAction。按照我最初编写的方式,SKAction将在100秒内移动精灵10点

所以我认为精灵毕竟在移动,但是我的X/Y/duration值太小了,以至于看起来它好像没有移动。当x=10,持续时间=100秒时,它在100秒内移动了10个点。我甚至不明白点对像素,但这是缓慢的运动


我把它改为x=100,y=50,持续时间=1.0,它移动得很好。

谢谢你的回答。我试过了,但也没用。你有没有遇到过这样一个问题:在SKAction moveTo结束后,精灵会回到原来的位置?我正面临这样的问题。请帮我弄清楚
- (void)swipeHandled:(UISwipeGestureRecognizer *)sender
{
   if (sender.state == UIGestureRecognizerStateRecognized) {
      if (sender.direction == UISwipeGestureRecognizerDirectionRight) {
          /* moving code here */
      }
   }
}