COCOS2D-X之精灵移动到所点击的位置Demo

来源:未知 责任编辑:责任编辑 发表时间:2013-11-17 14:34 点击:
这个Demo的效果就是当在电脑上用鼠标或在手机上不断用用手指点击屏幕的时候,对应的精灵会移动到最近一个点击的位置. p>一、首先我们在初始化的时候添加好要移动的精灵和开启触屏响应.开启触屏响应只要调用一个函数既可:

p>[cpp]  

p>setTouchEnabled(true);//CCLayer默认是不响应触屏事件的  

p>我们可以简单看下这个函数的实现如下:

p>[cpp] 

p>void CCLayer::setTouchEnabled(bool bEnabled)  

p>{  

p> if (m_bTouchEnabled != bEnabled)  

p> {  

p>  m_bTouchEnabled = bEnabled;  

p>  if (m_bRunning)  

p>  {  

p>   if (bEnabled)//如果响应触屏事件则进行注册  

p>   {  

p>    this->registerWithTouchDispatcher();  

p>   }  

p>   else  

p>   {  

p>    CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);  

p>   }  

p>  }  

p> }  

p>}  

p>二、我们重写CCLayer的void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)函数如下:

p>[cpp]  

p>void MainLayer::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)  

p>{  

p> CCSetIterator it= pTouches->begin();         //获取最近的一个点击的对象  

p> CCTouch* pTouch = (CCTouch*)(*it);  

p> CCPoint ptLocation= pTouch->getLocation();   //获得点击的坐标值  

p> CCNode* pSprNode = getChildByTag(kTagSprite);//获取要移动的精灵的指针  

p> if(pSprNode != NULL)  

p> {  

p>  pSprNode->stopAllActions();//停止之前的所有动作  

p>  pSprNode->runAction(CCMoveTo::create(1,CCPointMake(ptLocation.x, ptLocation.y)));//移动到点击的位置  

p> }  

p>}  

p>三、补充说明:

p>①、CCSetIterator是一个迭代器,其定义如下:

p>[cpp]  

p>typedef std::set<CCObject *>::iterator CCSetIterator;  

p>②、CCSet类的结构如下:

p>[cpp] view plaincopy

p>class CCSet : public CCObject  

p>{  

p>public:  

p> ****************************  

p>private:  

p> std::set<CCObject *> *m_pSet;  

p>}  

p>PS:因为是基础学习,故不作过多分析.后继会有更多精彩内容,敬请大家关注

p>本人郑重声明如下

p>一、本文来自CDN博客,本文地址http://t.cn/z86WXvT

p>二、All Rights Reserved. 任何个人或网站转载本文时不得移除本声明.

p>三、不得对文章进行修改,除非明确说明.同时欢迎大家评论转载和分享.

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • cocos2d-x学习笔记(19)--label 、label atlas
    • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
    • Cocos2d-x学习(一):HelloWorld
    • cocos2dx在xcode下开发,编译到android上(2)
    • cocos2d 设置屏幕默认方向
    • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
    • Cocos2d-x 2.0 之 Actions “三板斧” 之一
    • cocos2d-x学习笔记(18)--游戏打包(windows平台)
    • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1