浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用
首先,使用cocos new命令创建了一个cocos2d-x的C++项目和Lua项目,在生成的HelloWorld中写测试代码。
1.C++代码创建一个九宫格精灵
#include "ui/UIScale9Sprite.h"using namespace cocos2d::ui;//创建一个九宫格精灵Scale9Sprite* sp = Scale9Sprite::create("res/frame_Description_b.png");addChild(sp,1);sp->setposition(origin.x + visibleSize.wIDth/2,origin.y + visibleSize.height/2);Size _size = sp->getContentSize();sp->setCAPInsets(Rect(20,20,_size.wIDth-40,_size.height-40));sp->setPreferredSize(Size(300,300));
2.Lua代码创建一个九宫格精灵
local layer = cc.Layer:create()sceneGame:addChild(layer)--创建一个九宫格精灵local sp = ccui.Scale9Sprite:create('res/frame_Description_b.png')local _size = sp:getContentSize()sp:setCAPInsets(cc.rect(20,_size.wIDth-40,_size.height-40))layer:addChild(sp)sp:setposition(origin.x+visibleSize.wIDth/2,origin.y+visibleSize.height/2)sp:setPreferredSize(cc.size(400,200))
在cocos studio中没有Scale9Sprite,但可以使用ImageVIEw,给一个ImageVIEw设置好图片资源后,打开九宫格,可以看到默认的一个内间距,如图
voID setCAPInsets(const Rect& rect)设置的矩形就是红框所表示的区域,有时九宫格精灵会变形,就是这个矩形设置的不正确,在一些不规整的图片进行九宫格缩放时容易出现这个现象。
九宫格其实就是4个角部分保持不变,中间的一块和相邻的4块进行叠加或者缩放,所以变大之后的精灵四角和原图保持了一致。
voID setPreferredSize(const Size& size)改变九宫格的显示尺寸。其实在setCAPInsets之后,setContentSize也可以改变九宫格的显示尺寸。
如果我在本文中有错误的观点,还请大家指教,多多包涵,共同交流,共同进步。
总结以上是内存溢出为你收集整理的浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用全部内容,希望文章能够帮你解决浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)