如何加快物体的运动?
How to speed up the movement of the object?
场景中手指可以移动物体。但是,如果您只是加快手指在屏幕上的移动速度 - 对象就会保持原位。有没有可能加快它的移动速度?持续时间已设置为 0
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.locationInNode(self)
let node = self.nodeAtPoint(touchLocation)
if (node.name == "circle") {
let moveAction = SKAction.moveTo(touchLocation, duration: 0)
figureUser.runAction(moveAction)
}
}
你的问题不是速度,你的问题是你在屏幕上移动得太快了,你的触摸不再识别它下面的节点,因为该节点实际上不在它下面。你如何处理这个问题是在触摸开始事件上,你检查一个节点,并将这个节点分配给一个变量。然后在触摸移动事件上,更新新变量。最后在触摸结束时,清除变量。请注意,您需要为 multi touch
之类的事情处理此代码
var movingNode : SKNode?
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.locationInNode(self)
let node = self.nodeAtPoint(touchLocation)
if (node.name == "circle") {
movingNode = node
let moveAction = SKAction.moveTo(touchLocation, duration: 0)
figureUser.runAction(moveAction)
}
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.locationInNode(self)
let moveAction = SKAction.moveTo(touchLocation, duration: 0)
//at this point I am lost, how does node even relate here,
//is figureUser suppose to be node?
figureUser.runAction(moveAction)
}
场景中手指可以移动物体。但是,如果您只是加快手指在屏幕上的移动速度 - 对象就会保持原位。有没有可能加快它的移动速度?持续时间已设置为 0
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.locationInNode(self)
let node = self.nodeAtPoint(touchLocation)
if (node.name == "circle") {
let moveAction = SKAction.moveTo(touchLocation, duration: 0)
figureUser.runAction(moveAction)
}
}
你的问题不是速度,你的问题是你在屏幕上移动得太快了,你的触摸不再识别它下面的节点,因为该节点实际上不在它下面。你如何处理这个问题是在触摸开始事件上,你检查一个节点,并将这个节点分配给一个变量。然后在触摸移动事件上,更新新变量。最后在触摸结束时,清除变量。请注意,您需要为 multi touch
之类的事情处理此代码var movingNode : SKNode?
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.locationInNode(self)
let node = self.nodeAtPoint(touchLocation)
if (node.name == "circle") {
movingNode = node
let moveAction = SKAction.moveTo(touchLocation, duration: 0)
figureUser.runAction(moveAction)
}
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.locationInNode(self)
let moveAction = SKAction.moveTo(touchLocation, duration: 0)
//at this point I am lost, how does node even relate here,
//is figureUser suppose to be node?
figureUser.runAction(moveAction)
}