void claimTouch(UITouch aTouch)
{
CCTouchDispatcher dispatcher = CCDirector.sharedDirector.touchDispatcher;
// Enumerate through all targeted handlers.
var enumerator = dispatcher.getTargetedHandlers().GetEnumerator();
while (enumerator.MoveNext()) {
CCTargetedTouchHandler handler = (CCTargetedTouchHandler)enumerator.Current;
// Only our handler should claim the touch.
if (handler.delegate_ == this)
{
if (!(handler.claimedTouches.Contains(aTouch)))
{
handler.claimedTouches.Add(aTouch);
}
}
else
{
// Steal touch from other targeted delegates, if they claimed it.
if (handler.claimedTouches.Contains(aTouch))
{
CCTouchOneByOneDelegate oneByOneTouchDelegate = (CCTouchOneByOneDelegate)handler.delegate_;
if(oneByOneTouchDelegate != null){
oneByOneTouchDelegate.ccTouchCancelled(aTouch);
}
handler.claimedTouches.Remove(aTouch);
}
}
}
}