Я добавил 7 спрайтов и дал им тег и zorder.. но я не могу коснуться третьего объекта, и, наконец, остался только один объект, тогда я дотронусь до него.. Но когда я добавлю 6 спрайтов, я получу прикасаться правильно. все позиции спрайтов одинаковые но зордер разный.. не могу понять в чем проблема.. Я использовал класс обратного вызова запроса, чтобы связаться. здесь я добавляю немного своего кода..
код добавления спрайта..
zIndex = 7;
for(int i = 0; i<zIndex; i++)
{
CCSprite *paddle = [CCSprite spriteWithFile:[NSString stringWithFormat:@"%d.png",i+1]];
paddle.position = ccp(winSize.width/2, winSize.height/2);
[self addChild:paddle z:zIndex-i tag:i+1];
[mutArrSprites addObject:paddle];
NSLog(@"Z = %d tag = %d ",zIndex-i, i+1);
}
for(CCSprite *sprite in mutArrSprites)
{
[self addUserDataToNode:sprite];
}
в методе touchbegan
if (_mouseJoint != NULL) return;
UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
b2Vec2 locationWorld = b2Vec2(location.x/PTM_RATIO, location.y/PTM_RATIO);
// Make a small box.
b2AABB aabb;
b2Vec2 d;
d.Set(0.001f, 0.001f);
aabb.lowerBound = locationWorld - d;
aabb.upperBound = locationWorld + d;
// Query the world for overlapping shapes.
QueryCallback callback(locationWorld);
_world->QueryAABB(&callback, aabb);
b2Body *body = callback.m_object;
if (body)
{
//pick the body
CCSprite *sprite = (CCSprite *)body->GetUserData();
[self reorderChild:sprite z:zIndex++];
b2MouseJointDef md;
md.bodyA = _groundBody;
md.bodyB = body;
md.target = locationWorld;
md.collideConnected = true;
md.maxForce = 1000.0f * body->GetMass();
_mouseJoint = (b2MouseJoint *)_world->CreateJoint(&md);
body->SetAwake(true);
}