cocos2d图片素材-cocos2d加载程序时的那个背景图片如何添加,那个背景图片在给定的plist文件里
cocos2d怎么使用texture素材

我们首先渲染mask精灵,把src color(就是mask精灵)设置为GL_ONE,并且把destination color(一个空的buffer)设置为GL_ZERO。所以,效果就是简单的把mask图片显示来。 接下来,我们渲染日历图片精灵。把src color(日历)设置为GL_DST_ALPHA。意思是,看看mask图片的当前alpha值是多少,如果是0(完全透明),那么就显示mask的。如果是1(完全不透明),那么就显示日历图片。(译者注:如果大家对此不明白,可以参考这个链接)。然后把dst color(the mask)设计成GL_ZERO,这样的话,之前渲染上去的mask就消失了。 很酷吧!你可能会觉得我们只需要先把mask精灵渲染上去,然后再渲染日历精灵,并且指定这两个精灵的blendFunc就行了。
cocos2d怎么使用texture素材

我使用张图片给我历图片添加边框种带波纹效边框四边形张图片透明部遮罩效部白色区域则历图片显示区域
实现效我使用OpenGL混合模式
看《何使用CCRenderTexture态创建纹理》篇教程我讨论OpenGL混合模式我提非便线工具用见化调节混合模式效
完我想要效我需要采取面策略:
我首先渲染mask精灵src color(mask精灵)设置GL_ONE并且destination
color(空buffer)设置GL_ZERO所效简单mask图片显示
接我渲染历图片精灵src
color(历)设置GL_DST_ALPHA意思看看mask图片前alpha值少0(完全透明)显示mask1(完全透明)显示历图片(译者注:家明白参考链接)dst
color(the mask)设计GL_ZERO前渲染mask消失
酷吧能觉我需要先mask精灵渲染再渲染历精灵并且指定两精灵blendFunc行实际行通
面所提混合算精灵面些精灵渲染候问题---比背景图片面精灵作假设面做完1步骤imgae
buffer面存唯张图片mask(假设确啦要切换历图片)
我需要种式建立干净黑板执行12步制作遮罩纹理幸运用RenderTexture非便
Masking
and CCRenderTexture]
RenderTexture类让屏幕外buffer面渲染
用起非便主要原---使用给游戏截屏高效缓存用户渲染内容运行态创建sprite
sheet或者像本教程制作mask sprite
使用RenderTexture需要采取4步:
创建RenderTexture类像素单位指定想要绘制纹理宽度高度
调用RenderTexturebegin初始化渲染操作
调用OpenGL函数绘制实际内容--些OpenGL调用终都绘制屏幕外影响游戏现渲染图像
调用RenderTextureend结束绘制操作旦完RenderTexturesprite属性用Sprite用
要觉第3步奇怪---使用Cocos2d90%情况需要手直接调用OpenGL函数想渲染节点直接调用某节点visitsprite->visit函数自发射些OpenGL函数指针给图形硬件显示
点需要注意坐标问题(00)点渲染纹理左角位置所使用RenderTexture候定要坐标设置
能听些烦程序员喜欢看代码让我始coding吧
给精灵添加遮罩: 终实现
打面添加面注意静态文件声明需要注意:
//a static method
Sprite* HelloWorld::maskedSpriteWithSprite(Sprite* textureSprite, Sprite* maskSprite)
{
// 1
RenderTexture * rt = RenderTexture::create( maskSprite->getContentSize().width,
maskSprite->getContentSize().height );
// 2
maskSprite->setPosition(maskSprite->getContentSize().width/2,
maskSprite->getContentSize().height/2);
textureSprite->setPosition(textureSprite->getContentSize().width/2,
textureSprite->getContentSize().height/2);
// 3
maskSprite->setBlendFunc( BlendFunc{GL_ONE, GL_ZERO} );
textureSprite->setBlendFunc( BlendFunc{GL_DST_ALPHA, GL_ZERO} );
// 4
rt->begin();
maskSprite->visit();
textureSprite->visit();
rt->end();
// 5
Sprite *retval = Sprite::createWithTexture(rt->getSprite()->getTexture());
retval->setFlippedY(true);
return retval;
}
让我步步解面操作:
使用mask精灵创建CCRenderTexture
重新设置mask精灵texture精灵位置使左角(00)
按照我前讨论设置每精灵blendFunc
调用CCRenderTexturebegin始渲染操作依渲染masktexture精灵调用end
基于CCRenderTexturesprite属性texture创建新精灵同翻转y纹理创建倒
接我使用面函数制作遮罩效:
//cal->setPosition(
Sprite * mask = Sprite::create("");
Sprite * maskedCal = maskedSpriteWithSprite(cal, mask);
maskedCal->setPosition(
//pRet->addChild(cal);
pRet->addChild(maskedCal);
编译并运行
cocos2d加载程序时的那个背景图片如何添加,那个背景图片在给定的plist文件里

cocos2d加载程序时的那个文件是一个命名为的图片,你可以命名一个同名图片去覆盖它。
通常游戏的开始画面可能不仅仅是一张图片,加载了。
我不记得是cocos2d哪个版本了,在AppDelegate文件里有一个removeStartupFlicker方法,里面注释着以下内容
- (void) removeStartupFlicker
{
//
// THIS CODE REMOVES THE STARTUP FLICKER
//
// Uncomment the following code if you Application only supports landscape mode
//
#if GAME_AUTOROTATION == kGameAutorotationUIViewController
//CC_ENABLE_DEFAULT_GL_STATES();
//CCDirector *director = [CCDirector sharedDirector];
//CGSize size = [director winSize];
//CCSprite *sprite = [CCSprite spriteWithFile:@""];
// = ccp(
// = -90;
//[sprite visit];
//[[director openGLView] swapBuffers];
//CC_ENABLE_DEFAULT_GL_STATES();
#endif // GAME_AUTOROTATION == kGameAutorotationUIViewController
}
把CCSprite *sprite = [CCSprite spriteWithFile:@""];
在这里你可以取你plist里的那个图片路径来显示它
当然,通常的做法是自己创建一个初始画面的类,不去显示,自己在类里面做这个初始画面,是淡入淡出也好,甚至播动画也好,都可以自己把控。要记得把初始场景设为它。
-
果盘绘画图片大全简单创作方法快速制作技巧2024-01-02 16:57:54
-
小年插画图片创作方法快速制作技巧2024-01-02 16:57:20
-
小年绘画作品制作技巧2024-01-02 16:55:45
-
小年插画图片创作方法快速制作技巧2024-01-02 16:55:02
-
立春插画图片如何制作2024-01-02 16:54:19
-
立春插画图片创作方法快速制作技巧2024-01-02 16:53:32






扫描二维码添加客服微信
扫描二维码关注