【发布时间】:2013-11-20 13:08:42
【问题描述】:
在我的项目中,我有一个包含很多 CCLabelTTF 的层。并且图层可以向左或向右移动。我已经实现了三个 ccTouch 事件。现在我想为每个 CCLabelTTF 添加触摸事件。当用户触摸 CCLabelTTF 并来到另一个场景时。我能做些什么? 提前谢谢你。
bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
以下详情:
bool WallScene::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
touchbeginpoint = ccp(pTouch->getLocation().x , pTouch->getLocation().y);
touched=true;
return true;
}
void WallScene::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
touched=false;
}
void WallScene::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent)
{
CCPoint newpos=ccp(pTouch->getLocation().x , pTouch->getLocation().y);
CCPoint temppoint=ccp(newpos.x-touchbeginpoint.x, newpos.y-touchbeginpoint.y);
changepoint =ccp(changepoint.x+temppoint.x, changepoint.y+temppoint.y);
////////////////
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
if(changepoint.y!=0)
changepoint.y=0;
if(changepoint.x>=0)
changepoint.x=0;
if (changepoint.x<=-3000*rescale+visibleSize.width)
changepoint.x=-3000*rescale+visibleSize.width;
////////////////
this->setPosition(changepoint);
touchbeginpoint = newpos;
}
【问题讨论】:
-
有什么理由不使用带有 CCMenuItemLabel 对象的 CCMenu 而不是 CCLabelTTF 吗?
-
@YvesLeBorg 我有很多标签,我无法将它们全部放入 CCMenu。
-
这就像说'我有这么多精灵,我不能把它们都放在一个应用程序中'......你将标签作为孩子添加到某物上,有什么区别?