[windows+cocos2dx](绝对/相对)坐标系、锚点、深度、

cocos2dx里面有两种坐标系,第一个是OpenGL坐标系,第二个是UIKit坐标系。

OpenGL坐标系是以左下角为原点(0,0),UIKit(界面坐标系)是以左上角为原点。

初识坐标系

//坐标系和锚点
CCSprite *sprite = CCSprite::create("aladdin.png");  
sprite->setPosition(ccp(0,0));
this->addChild(sprite);  

CCSprite *sprite1 = CCSprite::create("aladdin.png");  
sprite1->setPosition(ccp(480,320));
sprite1->setAnchorPoint(ccp(1,1));
this->addChild(sprite1); 

CCPoint point = CCDirector::sharedDirector()->convertToUI(sprite1->getPosition());
CCLOG("x:%f,y:%f",point.x,point.y);



相对坐标系

如果一个节点添加在另外一个节点之上,那么子节点就是以父节点的坐标系为参考坐标系
//相对坐标系
CCSprite *sp1 = CCSprite::create("icon.png");
sp1->setPosition(ccp(200,200));
this->addChild(sp1);

CCSprite *sp2 = CCSprite::create("CloseNormal.png");
sp2->setPosition(ccp(0,0));
sp1->addChild(sp2);



深度关系

z值越大,显示的层级越高,越靠近屏幕方向。

//深度
CCSprite *sp1 = CCSprite::create("background.png");
sp1->setPosition(ccp(size.width*0.5,size.height*0.5));
this->addChild(sp1,1);

CCSprite *sp2 = CCSprite::create("CloseNormal.png");
sp2->setPosition(ccp(90,90));
this->addChild(sp2,0);

CCSprite *sp3 = CCSprite::create("CloseNormal.png");
sp3->setPosition(ccp(size.width-90,90));
this->addChild(sp3,2);




全局变量Tag

如果我们在一个方法中定义的精灵,我们想要在其他方法中也要用到,那么我们就可以使用tag这个属性,也就是对这个精灵标记了一个全局变量编号,所程序任何位置都可以通过CCSprite * sp = this->(CCSprite*)getChildByTag()来获取到该精灵对象。

定义的时候可以这样定义,第三个参数就是tag属性
this->addChild(sp1,0,1);


欢迎关注我的围脖

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:375151422      cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值