本文仅供个人记录和复习,不用于其他用途
3.x版本
3.x版本除了去掉CC
,其他再无变化。不过在3.3版本之后,出现了新的UI模块,原来的ControlSlider
、ControlButton
等等都改为了全新的类。当然,这个部分以后再说。
CCScale9Sprite
点九图、九宫图、九妹图,总之随便你怎么称呼它,我们的关注点在于它是个什么东西。看看这个类的名字,很显然,这个图由9个精灵构成,而且与缩放密切相关。事实上,我们在使用scale缩放时,图片会失真。为了解决这个问题,Cocos采用了点九图的方式来解决。
原理
点九图将纹理分成九个部分,依据以下步骤:
- 保持4个角部分不变形
- 单向拉伸4条边(即在4个角两两之间的边,比如上边,只做横向拉伸)
- 双向拉伸中间部分(即九宫图的中间部分,横向,纵向同时拉伸,PS:拉伸比例不一定相同)
拉伸完毕后,将九个部分拼接在一起,就形成了缩放后的图片。
头文件和命名空间
|
|
常用操作
|
|
图片拉伸
点九图不使用setScale()
进行缩放,而是使用setContentSize(const CCSize & size)
。
代码示例
|
|
注意事项
未设置capInsets
时,图片九等分。设置了capInsets
后,那么中间区域的大小就是capInsets
的值。