1

この混乱を整理するのを手伝ってください。

スプライト キット プログラミング ガイドから:

スプライト ノードの anchorPoint プロパティは、フレーム内のどの点が スプライトの位置に配置されるかを決定します。

これについての私の理解では、アンカー ポイントを変更すると、スプライトの位置は変更されず、それに応じてテクスチャ レンダリングのみが移動するはずです。

しかし、アンカー ポイントを設定すると、スプライトの位置が実際に変わります。このスニペットを見てください:

/* debug */
if (self.currentState == self.editState) {
    printf("B: relativeAnchorPoint = %.02f,%.02f  ", relativeAnchorPoint.x, relativeAnchorPoint.y);
    printf("position = %.02f,%.02f\n",self.position.x, self.position.y);
}

[self setAnchorPoint:relativeAnchorPoint];

/* debug */
if (self.currentState == self.editState) {
    printf("A: relativeAnchorPoint = %.02f,%.02f  ", relativeAnchorPoint.x, relativeAnchorPoint.y);
    printf("position = %.02f,%.02f\n",self.position.x, self.position.y);
}

出力:

A: relativeAnchorPoint = 0.65,0.48 位置 = 1532.00,384.00

B: relativeAnchorPoint = 0.65,0.48 位置 = 1583.00,384.00

私は何が欠けていますか?

前もって感謝します

*編集: 追加情報: * スプライトが画像を反転するために xScale を -1 に設定している場合にのみ発生します

4

1 に答える 1