如何更改anchorpoint并且不要改变位置??
我有一个sprite,它有0,0。
但是,我想暂时更改锚0.5,0.5,因为我想旋转精灵。
我想做的就是这样。
CGPoint anchorPointOriginal = ccp(0,0);
CGPoint anchorPointTemp = ccp(0.5,0.5);
[mySprite setAnchorPoint:anchorPointTemp];
//Rotate
[mySprite setAnchorPoint:anchorPointOriginal];
但是当我更改anchorPoint时, 精灵也根据新的锚点移动位置
是否可以保持精灵位置并仅更改锚点?
答案 0 :(得分:1)
更改定位点时尝试更改精灵的位置。有点像...
mySprite.anchorPoint = anchorPointTemp;
mySprite.position = CGPointMake(mySprite.position.x+mySprite.size.width/2,
mySprite.position.y+mySprite.size.height/2);
这将改变anchorPoint并移动精灵以正确补偿位置变化(由于锚点变化)。
如果要将锚点更改回CGPointZero,则需要撤消此操作。
答案 1 :(得分:0)
如果你使用cocos2d-iphone 2.0或更高版本,那么你可以简单地使用
ignoreAnchorPointForPosition属性
mySprite.ignoreAnchorPointForPosition = YES;