我正面臨以下問題。SKShapeNode在函數中定義...如何獲得標識符
func createButton(bx: CGFloat, by: CGFloat, bw: CGFloat, bh: CGFloat, yourText: String) {
let button = SKShapeNode(rect: CGRect(x: bx, y: by, width: bw, height: bh), cornerRadius: 5)
button.fillColor = UIColor.blue
(...)
self.addChild(button)
我打電話這樣的功能:
我爲了使用SpriteKit產生自定義按鈕創建一個功能
self.createButton(bx: CGFloat(200), by: CGFloat(0), bw: CGFloat(130), bh: CGFloat(30), yourText: "testlabel")
我怎麼可以參考這個創建的對象後面?
EG:
我試圖改變使用觸摸單獨創建的元素的位置...
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let touchLoc = touch.location(in: self)
let touchWhere = nodes(at: touchLoc)
if !touchWhere.isEmpty {
for node in touchWhere {
if let node = node as? SKShapeNode {
if node == element1 {
}
在早期階段,我會創造這樣
element1 = SKShapeNode(rect: CGRect(x: 100, y: 100, width: 30, height: 30), cornerRadius: 10)
element1.fillColor = UIColor.red
addChild(element1)
的SkSpriteNode
在上面的例子中,我能夠通過調用標識符「element1」來引用這個特定元素,它說
if node == element1 {
但我怎麼能實現同樣的事情時使用的功能中創建多個元素...
最後,我想每個元素單獨使用觸摸
移動?
感謝您的快速反應! 但我怎麼能真正分配一個名稱的元素,通過一個函數創建。 這是確切我的問題... – mtacki
當這個按鈕被觸摸時,你想要發生什麼?如果你已經使用這個功能創建了多個相同的按鈕,他們都應該被觸摸或不同的事情做同樣的事情?如果不同,用戶如何知道按哪個按鈕?不同按鈕的顯着特點是什麼? –
@mtacki請參閱我的編輯以查看我的答案,以瞭解如何使用'name'屬性。 –