Ios 如何创建单独的方法来创建SKLabelNode或SKSpriteNode
我今天一直在看一些精灵工具包教程,但我似乎找不到任何类似的,所以我来到stackoverflow来了解精灵工具包的基本知识 我知道要创建文本,代码是: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
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方法了吗?使用断点和单步执行代码验证是否有效。是的,它可以工作,但我想知道如何在单独的方法中创建它们,然后在其他地方调用它们