我想要我触摸精灵精灵1,精灵2移动。当touchEnd,sprite2 stopAction。
void GameScene:: ccTouchesBegan( cocos2d::CCSet * touches, cocos2d::CCEvent * event ){
CCTouch *touch = (CCTouch *)touches->anyObject();
CCPoint location = touch->getLocationInView();
CCPoint convertedlocation = CCDirector::sharedDirector()->convertToGL(location);
if (turnUp->boundingBox().containsPoint(convertedlocation)) {
this -> turnUpClick();
}
if (turnDown->boundingBox().containsPoint(convertedlocation)) {
this -> turnDownClick();
}
if (turnLeft->boundingBox().containsPoint(convertedlocation)) {
this -> turnLeftClick();
}
if (turnRight->boundingBox().containsPoint(convertedlocation)) {
this -> turnRightClick();
}
}
答案 0 :(得分:0)
首先,有两件事可以改进你的代码(就cocos2dx而言)
您(可能)不需要此方法的多点触控版本,因为此代码中没有任何内容可以提示。除非您将来实际使用多点触控。单点触控版本为ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
。
您应该考虑使用CCMenu
,因为如果您有很多按钮,它将帮助您维护代码。此外,考虑到您想要注册两个事件(触摸和触摸),您也可以查看CCControlButton。
解决手头的问题:
根据您的代码片段,您应该在您指定的方法中开始相应的操作,然后在ccTouchEnded
中,您应该致电sprite2->stopAllActions()
(当然,sprite2
应该是变量的真实名称。)
如果有什么不清楚,请告诉我。