Ich habe mich gefragt, ob es eine Möglichkeit gibt, ein Symbol neben einem SKLabelNode gesetzt (da ich SKAction
verwenden müssen, um dieses Etikett nach oben zu verschieben) wie folgt aus:Embed-Symbol neben einem SKLabelNode
Alle fand ich darüber UILabel (here) oder ein GitHub Projekt (here) wurde mit, wo ich nicht mein Label verschieben oder prallen kann. (mit SpriteKit-Spring)
ich dachte, in einen Sprit-Knoten mit dem Symbolbild erstellen und es ist positio n neben der coinsLabel
, aber da dieses Etikett als Münzzähler verwendet wird, würde es größer werden, wenn erhöht; und das Symbol würde überlagert werden.
Ich habe dieses Beispiel Projekt darunter leichter zu visualisieren (es ist nicht das Symbol hat, natürlich. Es nur ist Erhöhen und coinsLabel
durch Tasten bewegen).
Wenn Sie möchten, können Sie es herunterladen here.
import SpriteKit
class GameScene: SKScene {
//Declaration
var icon = SKSpriteNode()
var coins = Int()
var coinsLabel = SKLabelNode()
var incrementButton = SKSpriteNode()
//Setup
func setupIcon(){
//icon
icon = SKSpriteNode(imageNamed: "icon")
icon.position = CGPoint(x: self.frame.width/1.45, y: self.frame.height/1.075)
icon.setScale(0.1)
}
func setupCoinsLabel(){
//coinsLabel
coinsLabel.position = CGPoint(x: self.frame.width/150 - 300, y: 0)
coinsLabel.setScale(12.5)
coinsLabel.text = "0"
}
func setupIncrementButton(){
//incrementButton
incrementButton = SKSpriteNode(imageNamed: "incrementButton")
incrementButton.position = CGPoint(x: self.frame.width/2, y: self.frame.height/3.15)
incrementButton.setScale(2.0)
}
override func didMoveToView(view: SKView) {
/* Setup your scene here */
setupIcon()
addChild(icon)
setupCoinsLabel()
icon.addChild(coinsLabel)
setupIncrementButton()
addChild(incrementButton)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
//When touch buttons/screen
for touch in touches{
let location = touch.locationInNode(self)
let node = nodeAtPoint(location)
//Increment
if node == incrementButton{
coins += 1
coinsLabel.text = NSString(format: "%i", coins) as String
coinsLabel.position = CGPoint(x: self.frame.width/150 - coinsLabel.frame.width, y: 0)
}
}
}
}
wenn ich versuche, das Symbol hinzuzufügen, ohne seine Position zu ändern, wird es überlappen 'coinLabel', aber wenn ich versuche Symbol Position neben coinLabel zu setzen, es wird nicht angezeigt. Ich weiß nicht warum. Ich habe den Beitrag mit dem neuen Code bearbeitet. – Luiz
setze keine X-Position bei self.width/2, setze auf label.width/2, und setze dein y auf 0 – Knight0fDragon
es wird jetzt angezeigt, aber wenn 'coinsLabel' mehr als 1 Ziffer hat, überlappt es das Symbol. Ich habe den Code bearbeitet. – Luiz