Memposisikan SkSpriteNode di dalam pengendali penyelesaian SkAction

Saya mengalami masalah aneh ini. Saya menambahkan musuh (SKSpriteNode) dari dalam DidMove GameScene (untuk melihat: SKView) menggunakan addChild.

Musuh telah diposisikan ke x:100, y: 100 dan muncul dengan benar. Saya juga punya animasi lain, yang penyelesaiannya saya tambahkan musuh lain di lokasi yang sama. Namun musuh muncul di lokasi yang berbeda. Blok penyelesaiannya seperti gambar di bawah ini.

    holeExplosion.runHoleExplosionAction {[unowned self] in
        //self.addEnemy(enemyCount: 1, hole: holeExplosion)
        var modEnemy: ParentEnemy? = nil
        modEnemy = Enemy1(imageNamed: "Zombie1Jump1.png", healthPower:30)

        print(" \(self.scene?.position.x)  \(self.scene?.parent) ")
        self.addChild(modEnemy!)
        modEnemy!.enemySpeed = self.enemy1Speed
        modEnemy!.name = "enemy1"

        modEnemy!.position = CGPoint (x: 100 , y: 100)
        modEnemy!.zPosition = 2
    }

Bantuan apa pun akan dihargai. Terima kasih.


person vaishakh    schedule 20.08.2017    source sumber
comment
self bukan tempat kejadian, self adalah titik ledakan, Anda perlu menambahkan ke tempat kejadian dengan self.scene.addChild(modEnemy!)   -  person Knight0fDragon    schedule 21.08.2017
comment
Saya memeriksa dengan self.scene.add masih muncul di lokasi yang sama.   -  person vaishakh    schedule 21.08.2017
comment
apa maksudnya itu menunjukkan, kedudukan itu relatif terhadap induknya, tidak mutlak. jika orang tua berusia 10 tahun, dan anak berusia 20 tahun, maka kenyataannya anak tersebut berusia 30 tahun, tetapi yang ditampilkan hanya 20 tahun   -  person Knight0fDragon    schedule 21.08.2017
comment
Ya, saya sudah memeriksa perspektif itu. Saya memang mengubah posisi holeExpansion untuk memeriksa apakah induk yang dirujuknya juga adalah holeExpansion dan bukan scene. Namun perubahan posisi holeExpansion tidak mempengaruhi posisi musuh. Hal ini tidak relatif terhadap lubangEkspansi.   -  person vaishakh    schedule 21.08.2017


Jawaban (1)


Kelas musuh Anda memiliki delegasi PhysicsBody?? mungkin anda bisa melihatnya terlebih dahulu karena jika ada maka anda harus mencari properti isDynamic anda. Anda tidak dapat memiliki 2 benda dalam ruang yang sama jika propertinya sama dengan true.

person Adrian Ponce Muñoz    schedule 20.08.2017
comment
Anda dapat menempatkan 2 benda di tempat yang sama selama topeng tumbukan tidak bertabrakan - person Knight0fDragon; 21.08.2017
comment
Badan fisika tidak ditambahkan pada saat itu. Saya baru saja memberikan 2 musuh lokasi yang sama untuk tujuan representasi. Yang di luar posisi penutupan baik-baik saja. Yang di dalam penutupan berada di lokasi yang sangat berbeda - person vaishakh; 21.08.2017