-2

嗨朋友们,我想在 2d 图像上绘制网格,如下图所示,下面我给出了代码,但是应用程序正在崩溃并且没有显示错误消息......所以很难识别问题。

    float arr_location[] = {0.0,0.0,0.0,  0.0,1.0, 0.0,  1.0,1.0,0.0, 1.0,0.0,0.0};

CC3VertexLocations* Vlocation = 
    [[CC3VertexLocations vertexArrayWithName:@"demoLocation"] retain];
Vlocation.drawingMode = GL_TRIANGLES;//
Vlocation.vertexCount = 3;
Vlocation.vertices = arr_location;

    float arr_normal[] = {0.0,0.0,-1.0};
CC3VertexNormals* normal = [[CC3VertexNormals vertexArrayWithName:@"demoNormal"] retain];
normal.vertexCount = 1;
normal.vertices = arr_normal;

    float arr_indice[] = {0,1,2};
CC3VertexIndices* demoIndices = [CC3VertexIndices vertexArrayWithName: @"demoIndicies"];
demoIndices.drawingMode = GL_TRIANGLES;
demoIndices.vertexCount = 3;
demoIndices.vertices = arr_indice;

CC3VertexArrayMesh* demoMeshModel = 
     [[CC3VertexArrayMesh meshWithName:@"demoMeshModel"] retain];
demoMeshModel.vertexLocations = Vlocation;
demoMeshModel.vertexNormals = normal;
demoMeshModel.vertexIndices = demoIndices;

CC3PlaneNode *meshNode = [[CC3PlaneNode alloc] init];
meshNode.mesh = demoMeshModel;
meshNode.material = [CC3Material shiny];
meshNode.texture = [CC3Texture textureFromFile: @"2.jpg"];

[self addChild: meshNode];

参考图像

崩溃快照

4

1 回答 1

0

我认为 cocos2d 不可能,实际上它看起来像 3D,你可以肯定地用 OpenGL ES 来做,虽然我不确定具体如何,还没有在这么低的水平上工作,但如果你可以使用cocos3d然后使用 aCC3PlaneNode并将图片设置为纹理非常容易。我建议您阅读编程指南并再次询问您是否还有其他问题。

于 2013-02-01T12:13:54.880 回答