CSpriteMjCard* xxx2 = dynamic_cast<CSpriteMjCard*>(sender);
BYTE CardMark = xxx2->getMark();
if (CardMark != 0)
{
BYTE cbCardMax;
if (CardMark < 53)
cbCardMax = CardMark - 16;
else
cbCardMax = CardMark - 20;
CSpriteMjCard* xxx1 = CGameManager_Kwx::GetInstance()->m_Card->getCardCopyWithData(cbCardMax);
xxx1->setCardValue(cbCardMax);
xxx1->setPosition(xxx2->getPosition());
//xxx1->setTouchProiorty(kYYProiorityCard,false);
xxx1->setSelectorEnded(this, callfuncN_selector(CGameScene_Kwx::ccCardTouched));
int x2tag = xxx2->getTag();
xxx2->removeFromParent();
xxx1->setTag(x2tag);
addChild(xxx1,5);
m_UserCard->addObject(xxx1);
}
}
附上代码,我在windows下 xxx1变量所有的都可以正常响应ccCardTouched 。
在android 有的可以响应, 有的缺不能响应。。下面有CSpriteMjCard 类的关键函数
[code]void CSpriteMjCard::initValue()
{
m_cbColor = 0;
m_cbValue = 0;
m_cbData = 0;
m_wIndex = 0;
memset(m_pCardName, 0, sizeof(m_pCardName));
m_PointPre = ccpZero;
m_bTouch = true;
m_bSwallows = true;
m_wViewID = 0;
m_cbStatus= 0;
m_cbMark = 0;
m_bSelect = 0;
m_Tag = 0;
initSpriteSelector();
}
void CSpriteMjCard::onEnter()
{
CCSprite::onEnter();
if(m_bTouch){
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, kYYProiorityCard, m_bSwallows);
}
}[/code]
求指教呀。kYYProiorityCard = -128
好吧 自己解决了。。强行设置m_btouch = true 就可以了