Swift dan cetakan?

Karena saya baru mengenal pemrograman Swift iOS dan saya memiliki pertanyaan tentang membuat "prefab"? Saya memiliki latar belakang Unity dan ada sesuatu seperti cetakan yang dapat Anda contohkan berkali-kali. Apakah ada yang serupa dengan itu di Swift atau Xcode? Terutama saya mencarinya di SpriteKit untuk membuat salinan SKNode bersama anak-anak


person galdev    schedule 11.07.2017    source sumber


Jawaban (1)


Saya pikir hal yang paling dekat dengan cetakan adalah kelas.

Anda dapat membuat subkelas dari SKnode atau node lainnya, misalnya SKSpriteNode dan kemudian mengatur kelas tersebut untuk melakukan hal-hal yang Anda inginkan. Kemudian buat sebuah instance dari kelas itu.

class Box : SKSpriteNode{

    init(){

      //Setup your node the way you want it
       super.init(texture: nil, color: UIColor.red, size: CGSize(width: 50, height: 50))

    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }


}


//create instance and add to scene.
let box = Box()
self.addChild(box)

Anda juga dapat mengatur sebuah node dan kemudian menggunakan fungsi copy untuk menyalin node ini beserta turunannya.

let block1 = SKSpriteNode(color: UIColor.red, size: CGSize(width: 50, height: 50))
let child = SKSpriteNode(color: UIColor.blue, size: CGSize(width: 25, height: 25))
block1.addChild(child)


let copy = block1.copy() as! SKSpriteNode
addChild(copy)
person Magnus Ewerlöf    schedule 11.07.2017
comment
Berhasil! Saya mencoba pendekatan itu sebelumnya tetapi tidak berhasil karena beberapa alasan. Terima kasih banyak! - person galdev; 12.07.2017
comment
iirc ini tidak berfungsi untuk node dengan badan fisika (badan fisika tidak disalin sebagaimana mestinya) ... Setidaknya itu tidak berfungsi di masa lalu, jadi pastikan Anda memeriksanya kembali. Seseorang jangan ragu untuk mengoreksi saya jika ini tidak menjadi masalah lagi... @galdev - person Whirlwind; 12.07.2017