2011-04-03 37 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)來處理在觸摸外和背部運動的邊界內的情況下,物體。