cocos2d-x Scale9Sprite的使用方法 lua篇

本文介绍了如何在cocos2d-x中使用Scale9Sprite进行图片拉伸,避免图像严重扭曲变形。通过将图片分为九宫格,确保关键区域不被拉伸,从而保持图片质量。特别强调了设置参数时应注意基于原图尺寸,而非contentSize,以防止错误拉伸。示例代码展示了如何创建并配置Scale9Sprite。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里简单记录一下Scale9sprite的使用方法,其实使用这个方法主要是用来拉伸图片,好处就是该方法拉伸的程度不会像setScale方法这样严重扭曲变形。而是将一个纹理分为九个部分,也就是九宫格,上图:
这里写图片描述
将图片为9个部分,拉伸的情况下1,3,7,9 不会拉伸,2,8部分水平方向拉伸,4,6部分竖直方向拉伸,5两个方向都会拉伸,这样纹理就不会扭曲变形。
下面,贴出代码看一下九宫格怎么使用

注意:在为九宫格设置参数时候,一定要在原图的基础上,不要在contentSize上设置,这里踩了一下坑,因为这个精灵就是靠设置contentSize来拉伸的,自然不能在这个上面设置参数。
sprite = cc.Scale9Sprite:create("CommonShandow1.png") --1
sprite:setCapInsets(CCRectMake(0,0,571,26))  --2
sprite:setContentSize(cc.size(800, 60))  --3

1句用来创建这个精灵
2句用来设置“5”的大小,CCRectMake(0,0,571,26),0,0为“5”的左下角,571,26为“5”的宽、高
3句用来设置最终拉伸的状况

下面是明显的例子

self._frame = cc.Scale9Sprite:create("bg11_1.png")
self._frame:setCapInsets( CCRectMake(10, 10, 46, 34) );
self._frame:setContentSize(CCSizeMake(CELL_WIDTH,CELL_HEIGHT))

这个例子标明4个角的长宽都为10像素(ps:纹理大小为66*54)

参考文章:
http://yannickloriot.com/library/ios/cccontrolextension/Classes/CCScale9Sprite.html
http://blog.youkuaiyun.com/nynyvkhhiiii/article/details/12782249

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值