0

我有这个我想触摸的精灵,一旦我不再触摸它,我想调用一个方法 nslog“不触摸”。现在我设置代码的方式只在我点击其他东西时调用方法 nslog“不触摸”。我想在触摸对象时调用方法 nslog“触摸”,但只要我触摸其他东西或抬起我的手指,它会调用 nslog “不接触”。有什么建议么?感谢您的时间。

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSSet *allTouches = [event allTouches];
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
 int arraysize = [brain count];
for (int i = 0; i < arraysize; i++) {
if (CGRectContainsPoint( [[brain objectAtIndex:0]  boundingBox], location)) {
        NSLog(@"touched");
        }else {

NSLog(@"not touched");
   }}}
4

2 回答 2

0

我建议您将您的触摸处理程序注册为目标触摸委托。它会让你吞下这种触摸。

您应该处理所有委托方法。我的意思是touchBegan:withEvent:,,,touchMoved:withEvent:touchEnded:withEVent:因此,如果它的位置在精灵的矩形内,则只需在开始时存储触摸。然后就进入touchMoved:withEvent:touchEnded:withEvent:处理存储的触摸位置以确定触摸是否离开了精灵的矩形。

于 2012-10-30T11:46:21.303 回答
0

您可能想要定义ccTouchesEnded.

于 2012-10-30T11:46:30.057 回答