Cocos2d-x游戏引擎开发[5]---- 坐标体系

在opengl坐标体系中有两个非常重要的参数,即锚点和位置。

锚点:作为位置的参考点,锚点在设置某一个物件(如CCSprite,CCLayer)的位置时,其参照位置,数据为(0.0-1.0)之间,默认是(0.5, 0.5),也就是说其默认参照位置是该物件的中心。如锚点为(0.5,0.5),而矩形的大小是200*100,那么这个锚点相对于矩形的坐标系是(100,50),即是矩形的中间。


 我们一般把坐标体系分为3个{屏幕坐标,世界坐标,本地坐标}

主要是都是本地坐标,因为世界坐标相对来说也是屏幕的本地坐标,而屏幕坐标就是现在打开的游戏界面大小。
 

锚点是定位和变换操作的一个重点。锚点我们可以看成用一根图钉将一张纸或者相片钉在墙上的那个点。节点的位置是由我们设置的position和anchor point一起决定的。

值得一提的是,anchor point的默认位置Layer的是左下,而其他的node是中点。节点的原点是父节点的左下角。

Layer* layer1 = LayerColor::create(ccc4(255,0,0,255), 300, 200); 

Layer* layer2 = LayerColor::create(ccc4(255,255,0,255), 100, 100); 
  

addChild(layer1); 
layer1->addChild(layer2); 
    

layer2->setPosition(50,50); 

可见Layer的锚点是左下角,节点的原点是父节点的左下角。

下面是我的一段做好的移动图像截图代码

	CCMoveBy *by = CCMoveBy::create(2, ccp(200, 0));
	CCMoveBy *by2 = (CCMoveBy *)by->reverse();
	CCSequence *seq = CCSequence::create(by, by2, NULL);

	big->runAction(CCRepeatForever::create(seq));

	CCMoveBy *lby = CCMoveBy::create(2, ccp(0, -100));
	CCMoveBy *lby2 = (CCMoveBy *)lby->reverse();
	CCSequence *lseq = CCSequence::create(lby, lby2, NULL);
	
	little->runAction(CCRepeatForever::create(lseq));


这差不多就是整个坐标系的简单介绍和操作了,这个我的主要理解是相对而言,类似于火车在开树在后退,参照物不同的说法一样。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值