Как перевернуть текстуру на CC3PlaneNode? - PullRequest
3 голосов
/ 04 сентября 2011

Я создаю CC3PlaneNode (cocos3d) с кодом, который выглядит примерно так:

CC3PlaneNode *bnode = [CC3PlaneNode nodeWithName: name];
CC3Texture *texture = [CC3Texture textureFromFile: texName];
[bnode populateAsCenteredRectangleWithSize: sz
                           andTessellation: ccg(1, 1)
                               withTexture: texture
                             invertTexture: YES];
bnode.material.specularColor = kCCC4FLightGray;
bnode.material.emissionColor = kCCC4FWhite;
bnode.material.isOpaque = NO;
bnode.shouldCullBackFaces = NO;
bnode.isTouchEnabled = YES;
bnode.location = loc;
[bnode retainVertexLocations];

При определенных обстоятельствах я бы хотел, чтобы самолет отображал зеркальное отображение своей текстуры ( а-ля функция переворачивания по горизонтали во многих программах изображений). Я не просто хочу перевернуть плоскость , само по себе, потому что это выкинуло бы из положения все его дочерние узлы, что является нежелательным поведением.

То есть, если X & Y являются частями моей текстуры, а "c" и "c '" являются дочерними узлами на этой диаграмме:

+--------+
|        |
|  x   y |
|        |
+--------+
 c      c'

после броска я хочу, чтобы все выглядело так:

+--------+
|        |
|  y   x |
|        |
+--------+
 c      c'

За исключением того, что я не хочу вращать / вращать / переворачивать плоскость, сам по себе, в остальном я довольно гибок в решении.

Любые намеки?

Спасибо!

...