0

Cocos2d (Android、JAVA) では、CCRotateBy を使用して、複数のタイルを子として持つ 1 つの CCNode を回転させます。センタータイルの中心を回転のポイントにしたいので、アンカーポイントを使おうと思いました。

ただし、アンカーポイントにどのような値を指定しても、タイルは画面の左下を回転し続けます。どうして?

(タイルは CCNodes であり、tilesSelected と secondaryTilesSelected の 2 つのリストに収集されます)

            // I create one node which holds all the tiles I want to rotate
            CCNode tilesToRotate = CCNode.node();

            tilesToRotate.addChild(tilesSelected.get(0), 0, 99);
// then, I add the 4 tiles around the previous, center tile

            for (int i=0; i < secondaryTilesSelected.size(); i++){

                tilesToRotate.addChild(secondaryTilesSelected.get(i), 0, 99);
            }
            // So, if I change 700,700 hereunder to different values, it doesn't change the centerpoint for Rotation. I guess I don't get it...

            addChild(tilesToRotate);
            tilesToRotate.setAnchorPoint(CGPoint.make(700,700));
            CCAction r90 = CCRotateBy.action(1f, 90f);
            tilesToRotate.runAction(r90);
4

1 に答える 1

1

anchorPoint は、0,0 (左下隅) から 1,1 (コンテンツの右上隅) の範囲の係数です。

アンカーを 700,700 のノードから遠すぎます。

于 2015-02-16T09:29:22.423 に答える