0
我想弄清楚如何在特定的y点锁定SKSpriteNode
。当我的手指触摸屏幕时,节点显示在我触摸的点上。这是因为里面TouchesBegan
方法,我写的这是行代码:Swift Spritekit。我怎样才能锁定一个特定点的节点?
if isMovable == false {
isMovable = true
for touch in touches {
let location = touch.locationInNode(self)
ship.position = location
}
}
然后,我写了,而不是为了这几行代码来获得只有X点:
for touch in touches {
let location = touch.locationInNode(self)
ship.position = CGPointMake(location, self.frame.height/2 - 200)
}
然而,我得到的结果是,该位置不可用,因为它是CGPoint
,而不是CGFloat
。我试图把它当作CGFloat(location)
,但徒劳无功。有没有办法在y点锁定节点?
我希望的功能是当我触摸屏幕上的任何位置时,y点被锁定,这意味着节点只能水平移动,但不能垂直移动。
由于我的英语不够好,我可能会缺少一些解释,让你们更清楚地理解我的问题。我很感谢你了解我,并给我解决方案!提前致谢。
感谢您的答复,并且还有它的工作。但是,这不是我想要的。当我点击屏幕后,一个节点被完全放置在x点和y点上,就像它们被编程一样。问题在于,在第二次触摸之后,节点移动并且它不会保持在第一次出现的位置。系统运行时,我希望该节点永远在那里。我将如何能够做到这一点? – bagels
@ryohei那么你有几个解决方案。其中之一是直接在你的touchesBegan方法中生成精灵。你创建你的精灵,然后把它的位置分配给你的触摸位置。 –