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

标签 ios iphone objective-c sprite-kit

我今天一直在看一些 Sprite 套件教程,但我似乎找不到任何类似的教程,所以我来到 stackoverflow 以了解 Sprite 套件的基础知识。

我知道创建文本的代码是:

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];
}

最佳答案

我找到了答案!

要在单独的方法中创建 SKLabelNodeSKSpriteNode,您需要创建如下方法:

-(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;
}

关于ios - 如何创建单独的方法来创建 SKLabelNode 或 SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21361236/

相关文章:

ios - 重复错误 : Google Maps bundle missing from 'Copy Bundle Resources'

ios - Swift:成功登录后转到下一个屏幕

iphone - 如何更新应用程序图标和启动图像以同时支持 IOS 6 和 7?

iphone - 在 AppDelegate 中实例化的 UINavigationController

iphone - 我可以使用 Bonjour 连接两台 iOS 设备,一台使用 3G 网络,一台使用 WiFi

iphone - 获取ID3标签而不下载iPhone应用程序中的整个文件?

ios - 在NSMutableArray中快速找到子字符串

ios - 在 iOS 7 中如何将用户背景添加到应用程序中作为半透明背景?

iphone - 在 iOS 中使用耳机插孔同时播放和录制音频?

iOS:使用类型 'CGRect'(又名 'struct CGRect'),其中需要算术或指针类型