anchorPoint
влияет как на position
, так и на rotation
. Вы не можете остановить это от воздействия ни на одного из них.
Но, прочитав ваш вопрос, поскольку вы хотите предотвратить влияние anchorPoint
на вращение, я предполагаю, что причина, по которой вы изменяете anchorPoint
, относится к позиции, например, вы устанавливаете ее как ccp(1, 0)
потому что вы хотите, чтобы нижний правый угол спрайта вместо центра спрайта находился там, где вы устанавливаете позицию.
Мое предложение: вообще не изменять anchorPoint
, а изменить способ установки позиции спрайта. Вы можете использовать эту маленькую функцию для регулировки положения:
CGPoint adjustedPosition(const CGPoint position, const CGPoint anchor, const CGSize size) {
return CGPointMake(position.x - (anchor.x - 0.5) * size.width, position.y - (anchor.y - 0.5) * size.height);
}
Теперь, если вы хотите использовать anchorPoint (1,0) при позиционировании, вместо sprite.position = ccp(200, 300)
, вам просто нужно сделать:
sprite.position = adjustedPosition(ccp(200, 300), ccp(1.0, 0.0), sprite.contentSize);
Если хотите, я опубликую логику за математикой позже. В противном случае, я надеюсь, что это поможет.