1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //GameScene.h #include"cocos2d.h" USING_NS_CC; class GameScene: public cocos2d::Layer { : static cocos2d::Scene*createScene(); virtual bool init(); ontouchBegan(touch*touch,Event*unused_event); virtual voID ontouchmoved(touch*touch,Event*unused_event); ontouchended(touch*touch,Event*unused_event); menuCallback(cocos2d::Ref*pSender); CREATE_FUNC(GameScene); }; |
//GameScene.cpp //功能:运行点击屏幕,控制台显示触点坐标,并将图标移动到触点位置 #include"GameScene.h" USING_NS_CC; @H_649_301@ cocos2d::Scene*GameScene::createScene() { auto scene=Scene::create(); //创建一个场景 layer=GameScene::create(); //创建一个图层 scene->addChild(layer); return scene; } //初始化当前的图层 GameScene::init() { if (!Layer::init()) //初始化父类 return false ; //获取屏幕大小 SizevisibleSize=Director::getInstance()->getVisibleSize(); //添加一个图片精灵 sprite=Sprite::create( "OnePIEce_1.png" ); sprite->setposition(Vec2(visibleSize.wIDth/2,visibleSize.height/2)); this ->addChild(sprite); sprite1=Sprite::create( "Flag_1.png" ); sprite1->setposition(Vec2(visibleSize.wIDth/2,visibleSize.height/2)); sprite1->setTag(12); @H_782_404@->addChild(sprite1); //1.注册监听事件对象 Listener=EventListenertouchOneByOne::create(); //单点触摸 //autoListener=EventListenertouchAllAtOnce::create();//多点触摸 //settouchEnabled(true);//3.0版本已经被弃用 //2.定义监听对象的回调方法 Listener->ontouchBegan=CC_CALLBACK_2(GameScene::ontouchBegan, ); Listener->ontouchmoved=CC_CALLBACK_2(GameScene::ontouchmoved,monospace!important; border:0px!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; wIDth:auto!important; Font-size:1em!important; min-height:inherit!important">); Listener->ontouchended=CC_CALLBACK_2(GameScene::ontouchended,monospace!important; border:0px!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; wIDth:auto!important; Font-size:1em!important; min-height:inherit!important">); //3.在事件分发器中注册 _eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,monospace!important; border:0px!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; wIDth:auto!important; Font-size:1em!important; min-height:inherit!important">); true ; } //触摸事件函数(内部已创建,这里重新编写) GameScene::ontouchBegan(touch*touch,Event*unused_event) { //touch->getLocation();//获得的是OpenGL坐标 //autop1=touch->getLocationInVIEw();//获得的是UI坐标 //autop2=Dirctor::getInstance()->convertToGL(p1);//转换成OpenGL坐标 cclOG( "touchBeganx:%lf,y:%lf" ,touch->getLocation().x,touch->getLocation().y); sprite= ->getChildByTag(12); //通过标识获取精灵 //sprite->setposition(Vec2(touch->getLocation().x,touch->getLocation().y)); sprite->runAction(Moveto::create(0.5f,Point(touch->getLocation().x,touch->getLocation().y))); ; } GameScene::ontouchmoved(touch*touch,Event*unused_event) { //图标随鼠标一起移动 //autosprite=this->getChildByTag(12);//通过标识获取精灵 } GameScene::ontouchended(touch*touch,Event*unused_event) { |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //GameScene.h #include"cocos2d.h" USING_NS_CC; class GameScene: public cocos2d::Layer { : static cocos2d::Scene*createScene(); virtual bool init(); virtual voID menuCallback(cocos2d::Ref*pSender); CREATE_FUNC(GameScene); }; |
//GameScene.cpp //功能:运行点击屏幕,控制台显示触点坐标,并将图标移动到触点位置 #include"GameScene.h" USING_NS_CC; @H_649_301@ cocos2d::Scene*GameScene::createScene() { auto scene=Scene::create(); //创建一个场景 layer=GameScene::create(); //创建一个图层 scene->addChild(layer); return scene; } //初始化当前的图层 GameScene::init() { if (!Layer::init()) //初始化父类 return false ; //获取屏幕大小 SizevisibleSize=Director::getInstance()->getVisibleSize(); //添加一个图片精灵 sprite=Sprite::create( "OnePIEce_1.png" ); this ->addChild(sprite); sprite1=Sprite::create( "Flag_1.png" ); sprite1->setTag(12); @H_782_404@->addChild(sprite1); //1.注册监听事件对象 Listener=EventListenertouchOneByOne::create(); //单点触摸 //autoListener=EventListenertouchAllAtOnce::create();//多点触摸 //settouchEnabled(true);//3.0版本已经被弃用 //2.定义监听对象的回调方法 ); ); ); //3.在事件分发器中注册 ); true ; } //触摸事件函数(内部已创建,这里重新编写) { //touch->getLocation();//获得的是OpenGL坐标 //autop1=touch->getLocationInVIEw();//获得的是UI坐标 //autop2=Dirctor::getInstance()->convertToGL(p1);//转换成OpenGL坐标 cclOG( } 总结 |
评论列表(0条)