Ios 在SKLabelNode旁边嵌入图标

Ios 在SKLabelNode旁边嵌入图标,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我想知道除了SKLabelNode之外,是否还有其他方法可以设置图标(因为我需要使用SKAction向上移动此标签),如下所示: 我所发现的只是使用UILabel()或GitHub项目(,在那里我无法移动或反弹我的标签。 我正在考虑创建一个带有图标图像的精灵节点,并将其位置设置在硬币标签之外,但由于此标签用作硬币计数器,因此当增加时,它会变大;图标会被覆盖。 我在下面制作了这个示例项目,使其更易于可视化(当然,它没有图标。它只是通过按钮递增和移动coinsLabel) 如果你愿意,你可以

我想知道除了SKLabelNode之外,是否还有其他方法可以设置图标(因为我需要使用
SKAction
向上移动此标签),如下所示:

我所发现的只是使用UILabel()或GitHub项目(,在那里我无法移动或反弹我的标签。

我正在考虑创建一个带有图标图像的精灵节点,并将其位置设置在
硬币标签
之外,但由于此标签用作硬币计数器,因此当增加时,它会变大;图标会被覆盖。

我在下面制作了这个示例项目,使其更易于可视化(当然,它没有图标。它只是通过按钮递增和移动
coinsLabel

如果你愿意,你可以下载它

导入SpriteKit
类游戏场景:SKScene{
//声明
var icon=SKSpriteNode()
var=Int()
var coinsLabel=SKLabelNode()
var incrementButton=SKSpriteNode()
//设置
func setupIcon(){
//图标
icon=SKSpriteNode(图像名称:“icon”)
icon.position=CGPoint(x:self.frame.width/1.45,y:self.frame.height/1.075)
图标设置刻度(0.1)
}
func setupCoinsLabel(){
//科恩斯莱贝尔
coinsLabel.position=CGPoint(x:self.frame.width/150-300,y:0)
coinsLabel.设置刻度(12.5)
coinsLabel.text=“0”
}
func setupIncrementButton(){
//递增按钮
incrementButton=SKSpriteNode(图像名为:“incrementButton”)
incrementButton.position=CGPoint(x:self.frame.width/2,y:self.frame.height/3.15)
递增按钮。设置刻度(2.0)
}
覆盖func didMoveToView(视图:SKView){
/*在这里设置场景*/
设置图标()
addChild(图标)
setupCoinsLabel()
icon.addChild(coinsLabel)
setupIncrementButton()
addChild(递增按钮)
}
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
/*当触摸开始时调用*/
//当触摸按钮/屏幕时
接触{
let location=touch.locationInNode(自)
让节点=节点点(位置)
//增量
如果节点==递增按钮{
硬币+=1
coinsLabel.text=NSString(格式:“%i”,硬币)作为字符串
coinsLabel.position=CGPoint(x:self.frame.width/150-coinsLabel.frame.width,y:0)
}
}
}
}

只需制作一个SKSpriteNode并将其作为子节点添加到SKLabelNode,您就可以始终将SKSpriteNode的位置设置为SKLabel的右侧,而不管标签中有多少位数字,这样就不会发生重叠

//Increment   
        if node == incrementButton{

            coins += 1
            coinsLabel.text = NSString(format: "%i", coins) as String
            icon.position = CGPoint(x: coinsLabel.frame.width / 2, y: 0)

        }

当我尝试添加图标而不更改其位置时,它将重叠
coinLabel
,但当我尝试在coinLabel之外设置图标的位置时,它不会显示。我不知道为什么。我用新代码编辑了文章。不要将x位置设置为self.width/2,设置为label.width/2,并将y设置为0,它现在会显示出来,但当
coins时标签
有超过1个数字,它与图标重叠。我编辑了代码。当你调整标签大小时,你需要移动精灵,这不是自动的。我试图锁定
图标
的位置,当它增加时,
coinsLabel
的位置会向左移动。因此,当你作为
coinsLabel
的子代添加图标时,我将标签添加为
图标
的子项,这样我可以设置图标的位置,增加后标签应该向左移动,但它不起作用。
//Increment   
        if node == incrementButton{

            coins += 1
            coinsLabel.text = NSString(format: "%i", coins) as String
            icon.position = CGPoint(x: coinsLabel.frame.width / 2, y: 0)

        }