大佬教程收集整理的这篇文章主要介绍了Cocos2dx开发之锚点实例讲解,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我们要把一个精灵加载到场景中去,这个精灵上使用的图片资源是一张四边形图片,如下图所示
OK,当我们使用COcos2dx下对应的API要给这个精灵设置一个特定的位置时,设置的结果是什么样的呢?这就与我们给定这个精灵的锚点有关,设置不同的锚点,加载结果也会不同。锚点的设置可以根据你的喜好随意设置,但是一般来说常用的锚点有哪些呢?如下图红色圈所表示的——左下角、左上角、右上角、右下角,在Cocos2dx中默认使用的锚点坐标是四边形的几何中心点。
在Cocos2dx中,我们可以使用setAnchorPoint这个接口来设置锚点,参数是一个cocos2d::CCPoint类型,这个点是(0.0f,0.0f)~(1.0f,1.0f)之间的一个值。
锚点Demo演示
我们在下面这个场景中来做测试,首先如下图所示,我们在这个场景中添加一个精灵A作为背景精灵:
加载代码:
// 添加背景资源
cocos2d::CCSprite* pBg = cocos2d::CCSprite::create("wndbg.png");
CC_BREAK_IF( !pBg );
pBg->setPosition(ccp(300.0f,300.0f));
this->addChild(pBg);
然后我们在这个精灵上开始增加另外一个精灵B作为测试精灵。
好,我们把测试精灵B的锚点设置为左下角(0.0f,0.0f),然后加载到背景精灵A之上,如下图所示:
加载代码:
// 加载测试精灵
cocos2d::CCSprite* pTestSprite = cocos2d::CCSprite::create("bubble.png");
CC_BREAK_IF( !pTestSprite );
pTestSprite->setAnchorPoint(ccp(0.0f,0.0f));
pTestSprite->setPosition(ccp(0.0f,0.0f));
pBg->addChild(pTestSpritE);
结果显示:
再看下面,我们把测试精灵B的锚点设置为中间(Cocos2dx中默认锚点也是如此),加载结果:
加载代码:
// 加载测试精灵
cocos2d::CCSprite* pTestSprite = cocos2d::CCSprite::create("bubble.png");
CC_BREAK_IF( !pTestSprite );
pTestSprite->setAnchorPoint(ccp(0.5f,0.5f));
pTestSprite->setPosition(ccp(0.0f,0.0f));
pBg->addChild(pTestSpritE);
加载结果如下:
下来呢,再把测试精灵B的锚点设置为右上角(1.0f,1.0f),加载结果如下:
加载代码:
// 加载测试精灵
cocos2d::CCSprite* pTestSprite = cocos2d::CCSprite::create("bubble.png");
CC_BREAK_IF( !pTestSprite );
pTestSprite->setAnchorPoint(ccp(1.0f,1.0f));
pTestSprite->setPosition(ccp(0.0f,0.0f));
pBg->addChild(pTestSpritE);
加载结果展示:
NICE,至此,我们可以看到,测试精灵B锚点设置不会影响它在背景精灵上的位置(这个位置只是根据setPosition接口来改变),只会影响测试精灵B本身的资源图片上的哪一点来与这个位置对齐。
注意转载自:http://blog.sina.com.cn/s/blog_ad1675150101ffre.html
以上是大佬教程为你收集整理的Cocos2dx开发之锚点实例讲解全部内容,希望文章能够帮你解决Cocos2dx开发之锚点实例讲解所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。