この混乱を整理するのを手伝ってください。
スプライト キット プログラミング ガイドから:
スプライト ノードの 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 に設定している場合にのみ発生します