SKSpriteNode
'un belirli bir y noktasında nasıl kilitleneceğini anlamaya çalışıyorum. Parmağım ekrana dokunduğunda, dokunduğum noktada görüntülenen düğüm.Swift Spritekit. Belirli bir noktadaki bir düğümü nasıl kilitleyebilirim?
if isMovable == false {
isMovable = true
for touch in touches {
let location = touch.locationInNode(self)
ship.position = location
}
}
Ve sonra, sadece x noktasını elde etmek yerine sırayla bu kod satırları yazdı: Ancak
for touch in touches {
let location = touch.locationInNode(self)
ship.position = CGPointMake(location, self.frame.height/2 - 200)
}
, içeride TouchesBegan
yöntem, ben olan kod satırlarını yazdı Bunun nedeni Elde ettiğim sonuç, bu konumun kullanılamamasıydı çünkü CGPoint
, CGFloat
değil. CGFloat(location)
'u kullanmaya çalıştım ama boşver. Bir y noktasında bir düğüm kilitlemek için herhangi bir yolu var mı?
İstediğim istenen işlev, ekranda herhangi bir noktaya dokunduğumda, bir noktanın kilitli olması, yani bir düğümün yalnızca yatay olarak hareket edebilen, ancak dikey olarak hareket ettirilemediği anlamına gelir.
İngilizcem yeterince iyi olmadığından, sorunumu daha net bir şekilde anlamanıza olanak tanıyan bir açıklama eksikliğim olabilir. Beni anladıysan ve bana çözümü verirsen sevinirim. Şimdiden teşekkürler.
Teşekkür ve iyi işe yaradı. Ancak, aradığım şey bu değildi. Ekrana dokunduktan sonra, bir düğüm tam olarak programlandığı gibi bir x nokta ve y noktasına yerleştirilir. Sorun, ikinci bir dokunuştan sonra, düğüm hareket eder ve ilk göründüğü yerde kalmaz. Sistem çalışırken o düğümün sonsuza kadar orada olmasını istiyorum. Bunu nasıl yapabilirim? – bagels
@ryohei Peki bir çift çözümünüz var. Bunlardan biri, doğrudan "touchesBegan" yönteminde sprite oluşturuyor. Hareketli grafiğinizi oluşturup konumunuzu dokunmatik konumunuza atarsınız. –