[英]Direct OpenGL ES 2.0 drawing over Cocos2d drawing
我有一层。 它使孩子具有特定的“ z”值。 例如
我的自定义节点(Child_2)在'draw'方法内直接进行了Opengl es调用,以通过着色器绘制纹理。
我坚持的问题:
如果我在这些步骤中添加子代,则一切正常:
[self addChild:Child_1 z:-10.0f tag:1];
[self addChild:Child_2 z:-5.0f tag:2];
[self addChild:Child_3 z:-1.0f tag:3];
如果我以这样的方式添加它们:
[self addChild:Child_1 z:-10.0f tag:1];
[self addChild:Child_3 z:-1.0f tag:3];
[self addChild:Child_2 z:-5.0f tag:2];
Child_3不可见,但必须可见。
如何使用opengl es绘图调用实现适当的绘图行为?
PS这是代码
[hm2 use];
glVertexAttribPointer ( 0, 3, GL_FLOAT, GL_FALSE, 0, vVertices2 );
glEnableVertexAttribArray ( 0 );
glDrawArrays ( GL_TRIANGLES, 0, 3 );
LearnCocos2D ,谢谢! 我发现了ccDraw *,发现没有z值的gl *。 我的错误是我将glDrawArrays与z值一起使用。 我为什么 因为我想要两个不同的纹理,其中一个与另一个重叠,但是它们都应该在Child_1之上,并在Child_3之后。 为了避免这个问题,我坚持使用glDrawArrays不应该使用z值。
为了避免该问题并在Child_2中制作具有不同深度的纹理,我认为解决方案是创建新的两个节点,然后将它们作为子级添加到Child_2。
例如
@implementation Child_2
...
-(id) init
{
[self addChild:Child_2_1 z:-1.0f tag:0];
[self addChild:Child_2_2 z:-2.0f tag:1];
祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.