cocos2d-x学习之触摸移动
来源:互联网 发布:js获取视频的总时间长 编辑:程序博客网 时间:2024/05/11 01:35
游戏中控制人物行走的可以通过方向按键,也可以通过触摸屏幕轨迹来控制人物行走。
现在我们就来看看cocos2d-x引擎是怎样通过处理触摸屏幕事件来实现控制人物移动的。
在HelloWorld.h文件中 重写一下函数:
在HelloWorld.cpp文件中:
初始化函数init()中添加:
ccTouchMoved函数:
这样精灵就可以随着触摸轨迹移动了,希望对大家有帮助。
现在我们就来看看cocos2d-x引擎是怎样通过处理触摸屏幕事件来实现控制人物移动的。
在HelloWorld.h文件中 重写一下函数:
virtual void registerWithTouchDispatcher(); //注册触摸事件 virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); //触摸开始 virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); //触摸移动
在HelloWorld.cpp文件中:
初始化函数init()中添加:
//添加精灵CCSprite *spriteTest = CCSprite::create("aa.png"); spriteTest->setPosition(ccp(200,200));this->addChild(spriteTest,0,520);//使能触摸this->setTouchEnabled(true);
registerWithTouchDispatcher函数:
void HelloWorld::registerWithTouchDispatcher(){ //单点触摸 CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,true);}
ccTouchBegan函数:
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent){CCRect rect = this->getChildByTag(520)->boundingBox(); //获取精灵形状位置if(!rect.containsPoint(convertTouchToNodeSpace(pTouch))) //判断触摸点是否为精灵范围{return false;}return true;}
ccTouchMoved函数:
void HelloWorld::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent){ //控制精灵在屏幕范围内移动CCSize winSize = CCDirector::sharedDirector()->getWinSize();CCSize heroSize = this->getChildByTag(520)->getContentSize();CCPoint pos = pTouch->getLocation();if(pos.x>winSize.width-heroSize.width/2){pos.x=winSize.width-heroSize.width/2;}if(pos.y>winSize.height-heroSize.height/2){pos.y=winSize.height-heroSize.height/2;}if(pos.x<heroSize.width/2){pos.x=heroSize.width/2;}if(pos.y<heroSize.height/2){pos.y=heroSize.height/2;}//移动精灵this->getChildByTag(520)->setPosition(ccp(pos.x,pos.y));}
这样精灵就可以随着触摸轨迹移动了,希望对大家有帮助。
0 0
- cocos2d-x学习之触摸移动
- cocos2d-x 3.x学习之TouchOneByOne单点触摸
- Cocos2d-X之触摸事件
- cocos2d-x学习之层的触摸消息响应
- cocos2d-x学习之层的触摸消息响应
- cocos2d-x学习之设置精灵的触摸范围
- Cocos2d-x学习之---自定义图标(带触摸事件)
- cocos2d-x学习之设置精灵的触摸范围
- cocos2d-x学习之给CCLayer设置单点触摸
- quick-cocos2d-x 学习系列之十三 触摸
- cocos2d-x 2.X demo学习笔记 6 ----ClickAndMoveTest 触摸事件和移动
- cocos2d-x 3.x之触摸事件
- 【Cocos2d-x 3.0学习笔记】触摸
- cocos2d-x基础学习--添加触摸事件
- 【Cocos2d-x 3.0学习笔记】触摸
- cocos2d-x之触摸的响应
- Cocos2d-x 让飞机随着触摸移动起来
- Cocos2d-x 单点触摸--让精灵随手指移动起来
- java发送邮件
- cc debugger固件下载
- Linux视频采集与编码 V4L2
- Struts2 值栈
- gcc源代码分析,函数定义和finish_function()函数
- cocos2d-x学习之触摸移动
- 监听中sqlnet.ora的作用
- 二 CocosEditor For JS(Cocos2d-JS)工具下载和安装配置
- dma_alloc_writecombine 和mmap函数
- android做个版本下载更新
- hadoop 配置文件 masters 以及 namenode, jobtracker, secondary namenode
- HDOJ 1010 Tempter of the Bone
- Python-Project Euler 37
- Nor flash的探测