使用 spritekit 检测释放滑动 swift 时的坐标 [关闭]
Posted
技术标签:
【中文标题】使用 spritekit 检测释放滑动 swift 时的坐标 [关闭]【英文标题】:Detect coordinates on release of a swipe swift with spritekit [closed] 【发布时间】:2016-01-22 05:54:23 【问题描述】:您好,如果有人可以帮助我,那就太好了!
我需要获取滑动的坐标。我可以从 locationInNode 等获取初始触摸的坐标,但是我们如何获取滑动释放点的坐标?
func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
touched = true
for touch in touches
location = touch.locationInNode(self)
print(location)
这就是我获取初始坐标的方式,我也为 touchesMoved 这样做了
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?)
for touch in touches
location = touch.locationInNode(self)
print(location)
使用此代码,它不会打印触摸时释放的最终坐标。
基本上我想用坐标来锻炼第一次触摸和释放滑动点之间的距离。 谢谢你的帮助!!
【问题讨论】:
@Elliott Frisch 如果您能帮助我,那就太好了,因为我刚刚提供了我的问题的更多细节 【参考方案1】:捕获滑动状态,从began
到ended
:
let point: CGPoint = recognizer.location(in: recognizer.view!)
if recognizer.state == .began
print(NSCoder.string(for: point))
else if recognizer.state == .ended
print(NSCoder.string(for: point))
【讨论】:
rashwan 非常感谢!!! @prival,很高兴为您提供帮助! 我不知道把你的代码放在哪里,我试过在视图下加载,并启动 UIGestureRecognizer 但它一直返回 0,0 作为坐标@Rashwan L @prival 将它放在您的UIGesture
函数中。 let swipe = UITapGestureRecognizer(target: self, action: "myFunc"); self.view.userInteractionEnabled = true
。例如,将其放在myFunc
中。【参考方案2】:
-(IBAction)swipe:(UIGestureRecognizer*)sender
UIView *view1 = sender.view;
if (sender.state == UIGestureRecognizerStateEnded)
CGPoint touchUpPoint = [sender locationInView:view1];
NSLog(@"x=%f, y=%f",touchUpPoint.x,touchUpPoint.y);
【讨论】:
以上是关于使用 spritekit 检测释放滑动 swift 时的坐标 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Swift,SpriteKit:释放游戏场景并重新分配新场景
在使用 Swift 的 SpriteKit 中的 didBeginContact(日志)中未检测到 contactTestBitMask
在Sprite纹理中检测触摸而不是整个框架iOS Swift SpriteKit?
如何在 Swift 和 SpriteKit 中使用 UISwipeGestureRecognizer 而不是 touchesMoved?