Ios SpriteKit添加子项不工作

Ios SpriteKit添加子项不工作,ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我有一个普通的场景,我创建了一个SKSpriteNode,通过 [self addChild:_charecter]; 一切都很好 我尝试为SKSpriteNode创建一个新类,以便向其中添加一些自定义方法。以下是它的init方法: - (instancetype)init { if (self = [super init]) { SKTexture *run1 = [SKTexture textureWithImageNamed:@"run1"]; SKTexture *

我有一个普通的场景,我创建了一个SKSpriteNode,通过

[self addChild:_charecter];
一切都很好

我尝试为SKSpriteNode创建一个新类,以便向其中添加一些自定义方法。以下是它的init方法:

- (instancetype)init
{
  if (self = [super init]) {
    SKTexture *run1 = [SKTexture textureWithImageNamed:@"run1"];
    SKTexture *run2 = [SKTexture textureWithImageNamed:@"run2"];
    SKTexture *run3 = [SKTexture textureWithImageNamed:@"run3"];
    _charecterSprites = [NSArray arrayWithObjects:run1, run2, run3, nil];

    self.texture = run1;
    self.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:1.0]; //CHANGE THIS LATER
  }
  return self;
}
问题是,现在当我将_charecter添加到视图中时,它不会出现。我将他添加到场景中,如下所示:

_charecter = [[RUNPlayer alloc] init];
_charecter.position = CGPointMake(CGRectGetMidX(self.frame), CHARECTER_Y_AXIS);

self.physicsWorld.gravity = CGVectorMake(0, -10.0/150.0);

[self addChild:_charecter];
知道为什么我的SKSpriteNode不可见吗?
感谢您尝试使用其中一个SKSpriteNode初始值设定项而不是init

- (instancetype)initWithImageNamed:(NSString *)name
{
  if (self = [super initWithImageNamed:name]) {
    SKTexture *run1 = [SKTexture textureWithImageNamed:@"run1"];
    SKTexture *run2 = [SKTexture textureWithImageNamed:@"run2"];
    SKTexture *run3 = [SKTexture textureWithImageNamed:@"run3"];
    _charecterSprites = [NSArray arrayWithObjects:run1, run2, run3, nil];

    self.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:1.0]; //CHANGE THIS LATER
  }
  return self;
}
据我所知,当使用
initWithImageNamed:
时,精灵节点的大小设置为纹理的大小。您的精灵可能出现在屏幕上,但大小为(0,0)。让我们知道这是否有效


另一方面,请查看Ray关于纹理地图集的教程,以替换
\u characterSprites

它是charActer而不是charEcter;)