如何在Cocos2D 1.0 中掩饰一个精灵(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)



原帖来自Ray Wunderlich写的精彩的文章 How To Mask a Sprite with Cocos2D 1.0,地址在:
http://www.raywenderlich.com/4421/how-to-mask-a-sprite-with-cocos2d-1-0

有时在你的游戏中,你可能需要找到便利的方法去显示精灵的一部分.

一种办法是使用第二张称之为掩饰图片(mask)来完成.你设置掩饰图片中白色部分为要显示的地方,而其他所有部分皆为透明.

然后你可以使用我们在本篇中将描述的技术去组合掩码和原始图像,以便显示我们想要显示的部分!

你将会发现这可以方便实现大量有趣的效果 — 比如建立精灵的”谜之一部分”,将某些人的头砍下来放到一个有趣的身体上,或者建立灵巧的图片帧效果 — 就像我们将要描述的那样!

这段教程将向你展示如何在Cocos2D 1.0 中掩饰一个精灵,这多亏了一个在Cocos2D中便捷的类,称之为CCRenderTexture.

本教程假设你熟悉Cocos2D.如果你是Cocos2D的新手,你应该先学习其他的教程:
other Cocos2D tutorials

时间: 2024-12-31 01:51:35

如何在Cocos2D 1.0 中掩饰一个精灵(一)的相关文章

如何在Cocos2D 1.0 中掩饰一个精灵(六)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰一个精灵:实现代码 打开HelloWorldLayer.m并且在init方法上方添加如下方法: - (CCSprite *)maskedSpriteWithSprite:(CCSprite *)textureSprite maskSprite:(CCSprite *)maskSprite { // 1 CCRenderTexture * rt = [CCRe

如何在Cocos2D 1.0 中掩饰一个精灵(五)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰和CCRenderTexture CCRenderTexture是一个让你在屏幕以外缓存中绘制的类. 它的便捷有很多理由 - 你可以使用它去在你的游戏中截屏,用户绘制更为高效的缓存,在运行时动态创建精灵表集(sheets),或者我们将用来这个目的 - 帮助我们掩饰一个精灵. 为了使用CCRenderTexture,你要执行以下步骤: 创建CCRenderTe

如何在Cocos2D 1.0 中掩饰一个精灵(四)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了完成需要的效果,我们将使用如下策略: 我们将首先绘制掩饰精灵,源的颜色(mask)设置为GL_ONE,目的颜色(一个空的缓存)设置为GL_ZERO.所以我们基本上原样显示掩饰图片. 我么将绘制日历精灵,源颜色(日历精灵)为GL_DST_ALPHA.你可以把它想象为好比是"根据当前缓存中alpha的值(the mask).当它为不透明时,让日历显示出来,如果是

如何在Cocos2D 1.0 中掩饰一个精灵(二)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 让我们开始吧 打开Xcode,从New Project中选择cocos2d模板,点击下一步.命名新项目为MaskedCal,点击下一步,选择目标文件夹,然后点击Create. 接下来下载该项目的资源文件: http://haosou.xqiju.com/browse.php?u=sDrnThWlVVAzW8rIeQpXWRtJQhNB2ji0W8bJoRwh3e

如何在EF 5.0 中做带外键的数据新增

问题描述 如何在EF 5.0 中做带外键的数据新增 各位大牛好,我有一个EF的问题: 我有一张主表,包含2个子表,是用外键关联的,但是其中一张子表又是另一个子表的子表,也是用外键关联的,请问在EF中如何新增这3张表的记录.

ejb方法调用-EJB3.0中怎么一个类调用另外一个类的方法

问题描述 EJB3.0中怎么一个类调用另外一个类的方法 我做得的是struts+ejb3.0,在EJB中我想用BIZ调用dao,是直接New还是有别的方法...求大神指教..... 这是BIZ的方法 public List queryPet(String pelName,String pelZr,String pelType ,String px) { System.out.println("aaaaaaaaaaaaaaaaaaaa"); IDao dao=new IDaoImpl()

c#画图 如何在c# Form窗体中画一个圆!

问题描述 c#画图 如何在c# Form窗体中画一个圆! 怎么样在c#窗体中画出下图这样的图图片说明 解决方案 http://download.csdn.net/detail/yuping_liu/2343322 解决方案二: http://download.csdn.net/detail/yzl417020551/8629301 解决方案三: http://bbs.csdn.net/topics/390063048 解决方案四: http://blog.csdn.net/xianfajushi

vb6.0-VB6.0中定义一个rdoEnvironment时总是显示用户定义类型未定义

问题描述 VB6.0中定义一个rdoEnvironment时总是显示用户定义类型未定义 rt,VB6.0中定义一个rdoEnvironment时总是显示用户定义类型未定义

ActionScript3.0中建立一个帧频计数器

在这个教程中,你将学会如何测量Flash中当前的帧频,并将其显示出来. 帧频的重要性每一帧上都是一幅静止的图片,快速连续的帧会产生动画,每秒的帧数越多,展现的动画也就越流畅. 测帧频能让我们检测动画的进程,如果需要的话还可以优化动画. 当在不同的运行环境中测试动画时这个是非常有用的,例如浏览器中,电脑中,电视或手机中. 我们可以通过使用getTime()方法测帧频,并即时的在舞台中创建文本域来输出结果. --------------------------– 第一步:创建新文档打开Flash并创