【cocos2d-x】图片平铺和Scale9Sprite
来源:互联网 发布:天山股份历史行情数据 编辑:程序博客网 时间:2024/06/06 07:37
今天介绍cocos2dx如何使用平铺和Scale9Sprite
平铺主要用到了openGL的知识,示例代码如下:
Texture2D *texture = Director::getInstance() -> getTextureCache() -> addImage("Santa.png");Texture2D::TexParams tp = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};texture -> setTexParameters(tp);auto sprite = Sprite::createWithTexture(texture, Rect(0 , 0, visibleSize.width, visibleSize.height));sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));this->addChild(sprite, 0);
原图片:
实现效果:
注意:
TexParams是纹理参数,可以通过它实现纹理变换,前两个参数是纹理过滤规则,后两个参数是纹理环绕模式。
常见的几种:* 过滤规则 * GL_LINEAR:使用邻近像素点来插值补点 * GL_NEAREST:最邻近点过滤* 环绕模式 * GL_REPEAT:重复纹理 * GL_CLAMP:边缘像素复制
注意纹理的长宽必须是2的n次方,否则会报错
Scale9Sprite有人叫9宫格,有人叫9妹,不过叫什么都无所谓,用法是一样的。
Scale9Sprite可以用来拉伸图片,但是不失真。实现原理就是把图片分成九块,四个角的区域都保持不变,上下左右四条边只做一个方向的拉伸,中间区域放大,示例如下:
原图片:
使用setScale放大:
使用Scale9Sprite:
分割图片:
用法:
cocos2d-x 3.x以后废弃了Extension::Scale9Sprite,现在统一使用ui::Scale9Sprite,使用它首先要引入头文件和名称空间
#include "cocos-ext.h" USING_NS_CC_EXT;
示例代码:
//第一个Rect是指定Scale9Sprite的区域,第二个是指定中间用于拉伸的区域ui::Scale9Sprite *scale9Sprite = ui::Scale9Sprite::create("sample.png", Rect(0, 0, 142, 80), Rect(10,10, 122, 60));//目标大小scale9Sprite -> setPreferredSize(visibleSize);scale9Sprite -> setPosition(visibleSize * 0.5f);this -> addChild(scale9Sprite);
欢迎访问我的博客:helkyle.tk
0 0
- 【cocos2d-x】图片平铺和Scale9Sprite
- cocos2d-x 图片平铺
- cocos2d-x 3.X 使用Scale9Sprite
- cocos2d-x 3.3 如何调用Scale9Sprite
- cocos2d-x Scale9Sprite的使用方法 lua篇
- cocos2d-x中Texture2D::TexParams(图片平铺)一张图片铺满全屏做背景
- cocos2d-x 3.9版本使用Scale9Sprite的头文件设置
- Cocos2d-x v3.3 关于Scale9Sprite调用报错。。。
- css 图片平铺和不平铺
- 图片平铺 repeat-x repeat-y
- 解决 visual studio cocos2d-x 3.x 下 Scale9Sprite 的问题
- 【独立开发者er Cocos2d-x实战 005】使用Cocos2dx Scale9Sprite使用
- scale9Sprite和sprite
- 图片平铺
- 平铺图片
- VB 让picturebox 图片拉伸和平铺
- android 图片水平重复平铺(repeat x)
- Cocos2d-x--绘制图片
- 变量
- iOS 怎么去掉Xcode工程中的某种类型的警告
- MFC下DEBUG运行正常但REALSE版本运行直接退出
- Internet Explorer研究1-5章节
- hdu4127 Flood-it! (IDA*)
- 【cocos2d-x】图片平铺和Scale9Sprite
- GoAgent下local文件下proxy.ini文件各项参数介绍
- kmap_atomic的细节以及改进
- eclipse的注释模板设置(注意java文件的注释设置)
- 给ecshop后台增加管理菜单功能页面
- 支持各种尺寸的屏幕
- Kali-linux安装之后的简单设置
- directshow原理分析之filter到filter的智能连接
- 漫谈可视化Prefuse(一)---从SQL Server数据库读取数据