2011-04-03 97 views
0

我想可一个动作,我不能让这个效应:当我触摸到我的精灵有可能改变一个又一个画面,当我挂完当我触摸屏幕我的精灵必须改变

它必须回到初始状态。我如何检测我正在触摸屏幕的时间并使精灵发生变化?

感谢您的帮助。

+1

我们需要了解更多关于该问题的更多信息。请认真描述一下您的开发,您使用的平台以及您所看到的问题。 – 2011-04-03 19:02:05

回答

1

使用变量normalSprite和pressedSprite创建CCNode的子类。在初始化器,加上这一点,以便它处理亮点:

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; 

添加的方法与此签名来处理,当屏幕被触摸:

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event { 
    // Check that touch is within boundaries of this object 
CGPoint touchLocation = [self convertTouchToNodeSpace:touch]; 
    if (!CGRectContainsPoint(CGRectMake(0, 0, self.boundingBox.size.width, self.boundingBox.size.height), touchLocation)) { 
     return TRUE; 
    } 
    // Switch image 
    [self removeChild:normalSprite cleanup:NO]; 
    [self addChild:pressedSprite]; 

    return TRUE; 
} 

添加的方法与此签名来处理时,手指熄灭:

-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event { 
    // Switch image back 
    [self removeChild:pressedSprite cleanup:NO]; 
    [self addChild:normalSprite]; 
} 

您还可以添加ccTouchMoved(一切一样ccTouchEnded)来处理在触摸外和背部运动的边界内的情况下,物体。