Ios 为场景中的标签设置动画?
如何设置场景中SKLabel位置的动画 我尝试了以下方法,但似乎不起作用:Ios 为场景中的标签设置动画?,ios,objective-c,sprite-kit,uiviewanimation,sklabelnode,Ios,Objective C,Sprite Kit,Uiviewanimation,Sklabelnode,如何设置场景中SKLabel位置的动画 我尝试了以下方法,但似乎不起作用: [SKView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveEaseOut animations:^{
[SKView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
newBestLabel.position = CGPointMake(CGRectGetMinX(self.frame)+70, CGRectGetMaxY(self.frame)-30);
}
completion:^(BOOL finished){}];
及
在viewDidLoad中,它从以下位置开始:
newBestLabel.position = CGPointMake(CGRectGetMinX(self.frame)+70, CGRectGetMaxY(self.frame)+30);
这里出了什么问题?
SKLabelNode
没有继承自UIView
,这不是在SpriteKit中处理动画的方法。相反,您应该通过创建并将其应用于节点来处理此问题:
SKLabelNode *label = [SKLabelNode labelNodeWithFontNamed:@"Avenir"];
label.position = CGPointMake(30, 200);
label.text = @"Lorem Ipsum";
[self addChild:label];
SKAction *moveLabel = [SKAction moveByX:100 y:0 duration:2.0];
[label runAction:moveLabel];
与代码中的坐标不一样,但我相信您可以从这里获取坐标。
还有一个移动目标:如果这更符合您的需求,请采取行动
SKLabelNode
不是从UIView
继承的,这不是在SpriteKit中处理动画的方法。相反,您应该通过创建并将其应用于节点来处理此问题:
SKLabelNode *label = [SKLabelNode labelNodeWithFontNamed:@"Avenir"];
label.position = CGPointMake(30, 200);
label.text = @"Lorem Ipsum";
[self addChild:label];
SKAction *moveLabel = [SKAction moveByX:100 y:0 duration:2.0];
[label runAction:moveLabel];
与代码中的坐标不一样,但我相信您可以从这里获取坐标。
还有一个移动目标:如果这更符合您的需求,请采取行动 因为SKLabelNode是SKNode的子类,所以您可以使用名为runAction:的方法,并传入一个满足您需要的SKAction
// create an instance of SKAction
SKAction *moveLabel = [SKAction moveByX:0.0 y:30.0 duration:1.2];
// tell labelNode to run the action
[newBestLabel runAction:moveLabel];
还值得注意的是,SpriteKit使用的坐标系与UIKit的坐标系不同。因此,在上述代码中,正x值将向右移动,正y值将向上移动
有很多方法可以满足您的需要,还有很多其他方法,可以在中找到,因为SKLabelNode是SKNode的子类。您可以使用名为runAction:的方法,并传入一个满足您需要的SKAction
// create an instance of SKAction
SKAction *moveLabel = [SKAction moveByX:0.0 y:30.0 duration:1.2];
// tell labelNode to run the action
[newBestLabel runAction:moveLabel];
还值得注意的是,SpriteKit使用的坐标系与UIKit的坐标系不同。因此,在上述代码中,正x值将向右移动,正y值将向上移动
有很多方法可以满足您的需要,还有很多其他方法,可以在精彩的解释中找到,这正是我想要的!很好的解释,正是我想要的!