0

我正在使用 ccTouchesBegan 和 ccTouchesEnded 方法来注册触摸。一切都很好,直到我在我的节点上放置了一些按钮(ccmenuitems)。现在,当我将手指放在按钮上,然后将其移动到屏幕的任何其他位置时,ccTouchesEnded 方法不会调用。我究竟做错了什么?如何检测按钮上的触摸?

一些代码:

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint location = [self convertTouchToNodeSpace: [touches anyObject]];
// here i check if touch is in the right place
if ([self ptInRect:location :CGRectMake(0, center.y - 160, winSize.width, 40)]) {
    dragBeginLocation = location;
}

}

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint location = [self convertTouchToNodeSpace: [touches anyObject]];
if (ABS(location.x - dragBeginLocation.x) < 8) {
    NSLog(@"TAP");
} else {
    NSLog(@"SWIPE");
}

}

因此,当我开始触摸精灵并在背景上释放时,我在控制台中什么也得不到。

按钮位于 CCMenu 中,高于背景。

4

0 回答 0