感谢点评与关注,欢迎转载与分享。
勤奋努力,持之以恒!
convertToNodeSpace:把世界坐标转换到当前节点的本地坐标系中。
//可以应用于判断子节点是否被点击,这时就需要把坐标从世界坐标系转换为父节点的坐标系。
//当然大多数情况会用CCMenu,但有时CCMenu就不适用了,比如长按触发响应的时候。
void HelloWorld::myInit14()
{
CCSize size = CCDirector::sharedDirector()->getWinSize();
//创建父节点
CCSprite* back = CCSprite::create("ui_miss_butt_bj2song.png");
back->setPosition(ccp(size.width*0.5, size.height*0.5));
this->addChild(back,1,123);
//创建子节点
CCSprite* buttonSP = CCSprite::create("team_ok_butt.png");
buttonSP->setPosition(ccp(back->getContentSize().width*0.8, back->getContentSize().height*0.5));
back->addChild(buttonSP,1,321);
}
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
beganPoint = pTouch->getLocation();
return true;
}
void HelloWorld::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
CCPoint endPoint = pTouch->getLocation();
CCSprite* back = (CCSprite*)this->getChildByTag(123);
CCSprite* buttonSP = (CCSprite*)back->getChildByTag(321);
//convertToNodeSpace 把世界坐标转换到当前节点的本地坐标系中。
CCPoint nodeBeganPoint = back->convertToNodeSpace(beganPoint);
CCPoint nodeEndPoint = back->convertToNodeSpace(endPoint);
//判断子节点是否被点击
if (buttonSP->boundingBox().containsPoint(nodeBeganPoint) && buttonSP->boundingBox().containsPoint(nodeEndPoint)) {
CCLog("被点到了");
}
}
convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中。
//sp3是sp2的子节点,sp2是sp1的子节点。
void HelloWorld::myInit13()
{
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite* sp1 = CCSprite::create("Icon.png");
sp1->setPosition(ccp(size.width*0.5, size.height*0.5));
this->addChild(sp1);
CCSprite* sp2 = CCSprite::create("Icon.png");
sp2->setColor(ccYELLOW);
sp2->setPosition(ccp(sp1->getContentSize().width, sp1->getContentSize().height));
sp1->addChild(sp2);
CCSprite* sp3 = CCSprite::create("Icon.png");
sp3->setColor(ccBLUE);
sp3->setPosition(ccp(sp2->getContentSize().width, sp2->getContentSize().height));
sp2->addChild(sp3);
//convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中。
CCPoint worldPoint = sp3->convertToWorldSpace(sp3->getAnchorPointInPoints());
CCLog("worldX == %f, worldY == %f",worldPoint.x,worldPoint.y);
//sp4正好覆盖掉sp3,说明转换到世界坐标系中的坐标正确。
CCSprite* sp4 = CCSprite::create("Icon.png");
sp4->setColor(ccGREEN);
sp4->setPosition(worldPoint);
this->addChild(sp4);
}
分享到:
相关推荐
基于cocos2dx3.2的ScrollView改良版,paging分页部分是参考网上已有的源代码并进行改良,修复bug, indicator指示器部分是自己研发。 测试环境:mac os x (Windows平台 应该可行,需要你自己添加PagedScrollView到...
cocos2dx scrollview优化
IOS开发中因为引入cocos2dx,导致代码审核不通过无法提交( Apple will stop accepting submissions of apps that use UIWebView APIs )。该问题的解决方案有两种:1)升级Cocos2dx的版本,在查看Cocoas官网及Cocoas...
cocos2dx中使用精灵的例子,新手可参考。
cocos2dx_lua使用c++cocos2dx_lua使用c++
cocos2dx 模糊效果代码提供,尽情下载吧!
cocos2dx使用第三方so库 是一分文档, cocos2dx使用第三方so库 是一分文档, cocos2dx使用第三方so库 是一分文档, 重要事情说三遍
使用COCOS2DX实现线程后台运作与推送,当点击HOME键后进入后台运作方式,开启后台线程,使用VOIP;
此代码在cocos2dx2.1.4下面编译有部分错误,我修改后,正常。 下下来后,请在VC++包含目录中链接(F:\cocos2d-x-2.1.4\cocos2dx\platform\win32;F:\cocos2d-x-2.1.4\cocos2dx\platform\third_party\win32\OGLES\GL\;...
我所理解的cocos2dx pdf
cocos2dx斗地主服务端,客户端在我的资源列表中
SublimeText 启动cocos2dx3.0项目 按readme.txt里面说明去修改路径之后 直接在lua文件里按F7即可运行项目
使用了该配置文件后,在LuaStudio中编写cocos2dx时将可以出现强大的代码提示功能 其中配置包括了cocos2dx 2.0.4和cocos2dx2.1.3在lua中所有函数,类,类的成员变量和方法以及相关枚举定义 使用方法: 1.打开本目录...
cocos2dx可用3d粒子编辑器,支持pc、mac、iphone、android等平台
使用cocos2dx新建的helloword工程,嵌入到android原生项目中的demo
cocos2dx-3.x游戏开发之旅电子版供大家下载参考。。。。。。
想了解cocos2dx的游戏开发的朋友可以看一下,进行一些入门知识的补充。
cocos2dx学习代码,小游戏黄金矿工,值得学习.重要事情说三遍
博文 cocos2dx使用TiledMap创建斜45度地图场景 资源
delphi-cocos2dx.zip