Ios 如何创建单独的方法来创建SKLabelNode或SKSpriteNode

Ios 如何创建单独的方法来创建SKLabelNode或SKSpriteNode,ios,iphone,objective-c,sprite-kit,Ios,Iphone,Objective C,Sprite Kit,我今天一直在看一些精灵工具包教程,但我似乎找不到任何类似的,所以我来到stackoverflow来了解精灵工具包的基本知识 我知道要创建文本,代码是: SKLabelNode *label = [SKLabelNode labelNodeWithFontName:@"Chalkduster"]; label.text = @"This is a string which is displayed in an SKView"; label.fontSize = 30; label.positio

我今天一直在看一些精灵工具包教程,但我似乎找不到任何类似的,所以我来到stackoverflow来了解精灵工具包的基本知识

我知道要创建文本,代码是:

SKLabelNode *label = [SKLabelNode labelNodeWithFontName:@"Chalkduster"];

label.text = @"This is a string which is displayed in an SKView";
label.fontSize = 30;
label.position = CGPointMake(100, 100);

[self addChild:label];
我知道这会在SKView中添加一个字符串,但我想知道的是如何在以下位置创建它:

-(id)initWithSize:(CGSize)size {    
if (self = [super initWithSize:size]) {
     //above code here
}
return self;
}
我尝试过一种简单的方法,如:

-(void)exampleText{
    //SKLabelNode code here
}
但它们似乎不起作用,也许这是为了回报价值(如果有人能把我链接到一个能帮助我更好地理解回报的教程,那就太好了)

SKSpriteNode也是如此:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"sprite.png"

sprite.name = "Sprite";
sprite.scale = 0.5;

[self addChild:sprite];
这也是在
initWithSize:
方法中输入的

有没有其他方法可以创建它们以及SKAction类型(如果您这样称呼它们)(当然有)

我还想知道如何使用if语句来影响节点,如以下代码:

if (sprite.alpha == 0 || sprite.alpha < 0){
     [sprite removeFromParent];
}
if(sprite.alpha==0 | | sprite.alpha<0){
[sprite removeFromParent];
}
我找到了答案

要在单独的方法中创建
SKLabelNode
SKSpriteNode
,请创建如下方法:

-(SKNode*)makeSprite{
    SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"sprite.png";

    sprite.name = @"sprite";
    sprite.scale = 0.5;
    sprite.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
}
-(void)createSprite{
    SKNode *sprite[self makeSprite];

    [self addChild:sprite];
}
然后创建另一个方法,如下所示:

-(SKNode*)makeSprite{
    SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"sprite.png";

    sprite.name = @"sprite";
    sprite.scale = 0.5;
    sprite.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
}
-(void)createSprite{
    SKNode *sprite[self makeSprite];

    [self addChild:sprite];
}
然后将
createSprite
方法添加到:

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
         [self createSprite];
}
return self;
}

每个问题一个问题。你真的调用exampleText方法了吗?使用断点和单步执行代码验证是否有效。是的,它可以工作,但我想知道如何在单独的方法中创建它们,然后在其他地方调用它们