2016-04-24 13 views
1

ゲームシーン内で追加した基本テキストラベルのテキストを変更しようとしています。 しかし、これをコードで行う方法はわかりません。 今のところ、シーンエディタのラベルに名前を割り当てましたが、ここから続行し、ラベルに新しいテキスト値を署名する方法はわかりません。ゲームシーン内のテキストラベルのテキストを変更する方法

は現在、私は

let scoreLabel = childNodeWithName("scoreLabel") as! SKLabelNode 

を使用しかし、私はインスタンスメンバタイプの 『childNodeWithName』 『SKNode』のエラーメッセージ」の使用を受ける;?あなたはタイプ 『SKNode』の代わり の値を使用することを意味した。しかし私は、テキストラベの機能を利用したい、SKNodeクラスは私のために十分ではないからである。いくつかの助けを得

誰ですか?

+0

このエラーについての詳しい情報が必要な場合は、このコードが配置されている場所の詳細を入力してください(例:シーン/他のクラスのプロパティ、間違っている、または一部のメソッドでローカルに定義されています等)。 – Whirlwind

+0

@Whirlwind基本的に私はGameSceneクラスの中に行を置いています。私は他の変数と定義も入れています。しかし、私は次のようなことをする機会を探しています:scoreLabel.text = "3" – boehmatron

+0

私はタイマーの設定を別の関数に入れて "didMove"に呼び出しました。 – boehmatron

答えて

0

これは、いずれかのプロパティとしてSKLabelNodeを設定する方法の例ですローカルで、そしてacceこれらの変数以降のコードでは、SS:プロパティの場合

import SpriteKit 

class GameScene: SKScene { 

    let label = SKLabelNode(fontNamed: "ArialMT") 

    override func didMoveToView(view: SKView) { 

     label.text = "This is a label defined as a property of scene"; 
     label.fontSize = 35; 
     label.fontColor = .blackColor() 
     label.position = CGPoint(x:frame.midX, y:frame.midY) 

     addChild(label) 

     let anotherLabel = SKLabelNode(fontNamed: "ArialMT") 
     anotherLabel.text = "This is a label defined localy and added to a node tree" 
     anotherLabel.name = "anotherLabel" 
     anotherLabel.fontSize = 35; 
     anotherLabel.fontColor = .whiteColor() 
     anotherLabel.position = CGPoint(x:frame.midX, y:frame.midY - 100.0) 

     addChild(anotherLabel) 

    } 


    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 


     self.label.text = "Your text" 

     if let anotherLabel = childNodeWithName("anotherLabel") as? SKLabelNode { 

      anotherLabel.text = "Your text" 
     } 
    } 
} 

、アクセスがself.label.text = "..."同じくらい簡単です。ノードツリーに追加されたローカル変数の場合は、後でchildNodeWithNameメソッドを使用してnameプロパティを使用して検索します。

関連する問題