我想弄清楚如何在特定的y点锁定SKSpriteNode
。当我的手指触摸屏幕时,节点显示在我触摸的位置。这是因为在TouchesBegan
方法内部,我编写了以下代码行:
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点被锁定,这意味着节点只能水平移动,但不能垂直移动。
由于我的英语不够好,我可能缺少一些解释,让你们更清楚地理解我的问题。如果你了解我,我会感激,并给我解决方案!提前谢谢。
答案 0 :(得分:0)
您的location
变量的类型为CGPoint
,即:
包含二维坐标系中的点的结构。 Apple Documentation
因此,您可以使用相同的变量location
获取x
位置,并将y
锁定到您选择的任何位置:
for touch in touches {
let location = touch.locationInNode(self)
ship.position = CGPointMake(location.x, self.frame.height/2 - 200)
}