Cocos2d iphone cocos2d 2.1和HKTMX图层不透明度问题

Cocos2d iphone cocos2d 2.1和HKTMX图层不透明度问题,cocos2d-iphone,Cocos2d Iphone,我正在用coco2d2.1构建一个游戏,目前我开始使用HKTMXTiledMap扩展 总的来说,这个扩展很好,任何使用平铺地图(特别是大地图)制作游戏的人都应该去看看。但是我需要能够在我的水平过程中改变图层的不透明度 我尝试过改变着色器和绘图方法,但肯定有什么我错过了 我将HKTMXLayer.m的第97行更改为:self.shaderProgram=[[CCShaderCache sharedShaderCache]programForKey:kCCShader_PositionTexture

我正在用coco2d2.1构建一个游戏,目前我开始使用HKTMXTiledMap扩展


总的来说,这个扩展很好,任何使用平铺地图(特别是大地图)制作游戏的人都应该去看看。但是我需要能够在我的水平过程中改变图层的不透明度

我尝试过改变着色器和绘图方法,但肯定有什么我错过了

我将HKTMXLayer.m的第97行更改为:
self.shaderProgram=[[CCShaderCache sharedShaderCache]programForKey:kCCShader_PositionTextureColor],但图层显示为全黑


有人给我一些提示吗?谢谢

不确定您的整体上下文,但同一类的draw方法(第465行)仅设置“position”属性:考虑到类派生自“CCNode”,这是正常的

正在设置的着色器(通常用于精灵)需要顶点属性以及颜色属性。有关示例,请参见CCSprite(draw)中的代码。也许有另一种方法可以满足您的需要(为什么要将节点派生类的着色器更改为通常用于CCSprite/纹理的着色器)

修复已发布

将着色器更改为
kCCShader\u PositionTextureColor
,绘制层时需要传递颜色属性


glBlendFunc(GL_SRC_ALPHA,GL_ONE_减去GL_SRC_ALPHA)

glvertexattributepointer(kCCVertexAttrib_TexCoords,2,GL_FLOAT,GL_FALSE,0,NULL);

您是否创建自己的绘图方法?如果是,请确保在绘图顶部正确初始化着色器的姿态。使用平铺贴图制作游戏的任何人都应该查看KoboldTouch:无法抗拒。:)哦,当然,更改图层不透明度在KoboldTouch中绝对有效。@YvesLeBorg我正在尝试更改HKTMXLayer类。@LearnCos2D我会检查的!仅在使用cocos2d开发一年后更改框架是不现实的。哈哈哈
glVertexAttrib4f(kCCVertexAttrib_Color, color_.r/255., color_.g/255., color_.b/255., opacity_/255.);