Coscos2dx3.2鼠标单击移动

来源:互联网 发布:淘宝店铺的名字 编辑:程序博客网 时间:2024/05/18 03:24

3.2自带的例子程序在ClickAndMoveTest里面有详细例子,再次做一个记录

从helloworld demo程序 

class HelloWorld : public cocos2d::Layer从Layer派生

重载下面两个方法

virtual bool onTouchBegan(Touch *touch, Event *unused_event); 
virtual void onTouchEnded(Touch *touch, Event *unused_event);

程序里面添加如下代码

auto myListener = EventListenerTouchOneByOne::create();
myListener->setSwallowTouches(true);
myListener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan,this);
myListener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(myListener,this);


重载

void HelloWorld::onTouchEnded(Touch *touch, Event *unused_event)
{
auto location = touch->getLocation();


auto s = getChildByTag(HelloSprit_one);
s->stopAllActions();//
s->runAction( MoveTo::create(1, Vec2(location.x, location.y) ) );
// float o = location.x - s->getPosition().x;
// float a = location.y - s->getPosition().y;
// float at = (float) CC_RADIANS_TO_DEGREES( atanf( o/a) );
// 
// if( a < 0 ) 
// {
// if(  o < 0 )
// at = 180 + fabs(at);
// else
// at = 180 - fabs(at);    
// }
// 
// s->runAction( RotateTo::create(1, at) );
}



0 0