【发布时间】:2011-05-10 17:11:46
【问题描述】:
我一直在使用以下方法来检测触摸何时开始以及位置是什么:
-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
CGPoint touchLocation = [touch locationInView: [touch view]];
touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation];
touchLocation = [self convertToNodeSpace:touchLocation];
return YES;
}
但是如果我的手指仍在屏幕上,我也想知道如何随时获取当前位置。有谁知道怎么做?谢谢。
编辑
我想我会尽快将其发布为答案,但这就是我所做的:
我只是在我所有方法之外定义的 ccTime 方法中不断转换变量:
- (void)update:(ccTime)dt {
heroMoveEndLoc = [self convertToNodeSpace:heroMoveEndLoc];
}
【问题讨论】:
-
我遇到的问题,即使使用 ccTouchMoved,我也需要移动我的触摸来使事件发生。
-
那么,您想在手指仍按在同一位置时连续生成事件吗?
-
是的,这听起来很奇怪,但节点空间实际上会发生变化,因为地图滚动到您的触摸位置,所以即使您的手指在同一个地方,如果滚动,触摸将是节点空间中的不同位置.
-
那么您可能需要编辑您的问题以包含节点空间/滚动信息/代码。从现在的措辞来看,很难理解如何提供帮助。编辑,对不起,我看到你这样做了。
标签: iphone cocos2d-iphone touch