Cocos2d-x使用iPhone的多点触控实现双机游戏
来源:互联网 发布:飓风营救 知乎 编辑:程序博客网 时间:2024/05/22 14:16
之前在网上看到的多点触控的实现都是规定了哪个对象必须是第一个触点,哪个必须是第二个触点,以此类推。。。。。。多点触控的触点有一个ID数组,多点触控的实现是为每一个触点指定控制对象,为了实现第一个触点可以是任意一个对象,第二个触点是除了第一个对象的其他任一个对象,可以通过计算距离来判断将触点分给哪个对象:
这里以两个触点举例:
假设我们设计一个飞机游戏,可以同时控制两个飞机,这就用到多点触控:
setTouchEnabled(true);//开启多触点监听//用户手指进行移动或者拖拽void Game::ccTouchesMoved(CCSet *pTouches,CCEvent *pEvent){ CCSetIterator iter = pTouches->begin(); if(plane0IsExist)//多机模式,单机模式不涉及多点触控 { for (;iter !=pTouches->end(); iter++) { //获取两个飞机对象 CCSprite *sp2 =(CCSprite*)this->getChildByTag(tag_player0); CCSprite *sp1 =(CCSprite*)this->getChildByTag(tag_player); CCPointpoint1=sp1->getPosition(); CCPointpoint2=sp2->getPosition(); CCTouch *pTouch =(CCTouch*)(*iter); CCPoint location =pTouch->getLocation(); //根据触点与两个飞机之间的距离判断触控情况 //首先触点与飞机必须足够近,不然用户并没有触碰到飞机 //触点应该给相对较近的那个飞机 if(pTouch->getID()==0) { if (Distance(location, point1)<100.0){ sp1->setPosition(location); } else if(Distance(location,point2)<100.0) sp2->setPosition(location); } else if(pTouch->getID()==1) { if (Distance(location, point2)<100.0){ sp2->setPosition(location); } else if(Distance(location,point1)<100.0) sp1->setPosition(location); } } }else{// 单机模式 CCSprite *sp1 =(CCSprite*)this->getChildByTag(tag_player); CCPointpoint1=sp1->getPosition(); CCTouch *pTouch =(CCTouch*)(*iter); CCPoint location =pTouch->getLocation(); if (Distance(point1,location)<=sp1->getContentSize().width){ sp1->setPosition(location); } }}//删除多触点的委托监听void Game::onExit(){ this->unscheduleUpdate(); this->unscheduleAllSelectors(); CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this); CCLayer::onExit();}
工程源码:
SpaceWar-GitHub
1 0
- Cocos2d-x使用iPhone的多点触控实现双机游戏
- cocos2d-x 多点触控实现缩放及相关问题的解决方法
- cocos2d-x多点触控实现缩放及相关问题的解决方法
- Cocos2D-X学习12:交互功能——多点触控的实现
- cocos2d-x Android的单点触控多点触控可以使用代码来开启吗?
- 【cocos2d-x 3.0】关于多点触控的监听
- cocos2d-x的多点触碰事件
- cocos2d-x开启IOS多点触控
- cocos2d-x开启IOS多点触控
- cocos2d-x 多点触控总结
- cocos2d的多点触控
- 在cocos2d-x中实现多点触碰
- 使用cocos2d-x实现一款类似《Flappy Bird》的游戏
- 使用Cocos2D 2.X制作一个简单iPhone游戏教程
- 如何使用Cocos2D 2.X生成一个简单的iPhone游戏
- 如何使用Cocos2D 2.X生成一个简单的iPhone游戏 (2/8)
- 如何使用Cocos2D 2.X生成一个简单的iPhone游戏 (3/8)
- 如何使用Cocos2D 2.X生成一个简单的iPhone游戏 (4/8)
- Eclipse中将安卓工程改装成PhoneGap(cordova)工程
- v7 包下 ActionBar 的一些基本使用
- CvMat, Mat, IplImage互相转换
- 用PhoneGap Build打包ask和ipa软件安装包
- 安卓计算器
- Cocos2d-x使用iPhone的多点触控实现双机游戏
- 文章标题
- oracle解锁表
- 使用过的CSS小技巧笔记
- Web报表工具FineReport中JavaScript的使用
- HTML5与JQuery混合应用:选座功能逻辑简单实现
- 对Object,Array,RegExp,Function类型的总结
- HTML5中实现滑动条调节div透明度
- HTML5表单中password输入框的文字显示与隐藏实现