저는 Cocos2d를 처음 접했고 스프라이트를 위아래로 확장하려고 구현하려고합니다. CCEaseInOut
을 사용하여 작업을 수행하고 있습니다. 다음과 같이 내 코드는 같습니다 CCScaleTo는 스케일링과는 별도로 CCSprite를 이동시킵니다.
barrel setAnchorPoint:ccp(0.5,0.5)];
id scaleUpAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:.35 scaleX:1.5 scaleY:1.5] rate:1.0];
id scaleDownAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:.35 scaleX:1.0 scaleY:1.0] rate:1.0];
CCSequence *scaleSeq = [CCSequence actions:scaleUpAction, scaleDownAction, nil];
[barrel runAction:scaleSeq];
barrel
CCNode
이다.
센터 주변에서 스케일링이 발생할 수 있으므로 anchorPoint
을 (0.5,0.5)
으로 설정하려고했습니다. 그러나 그것은 도움이되지 않습니다.
저는 비슷한 질문을 보았습니다 : CCSprite is moved when using CCScaleTo or CCScaleBy. 불행하게도이 문제를 해결할 수있는 대답은 없습니다.
누군가가 올바른 방향으로 나를 가리킬 수 있다면 좋을 것입니다.
참고 : 배럴 개체가 box2d
개체로 사용되고 있음을 언급하는 것이 유용 할 수 있습니다. 거기에서 문제가 발생할 수 있습니까? 건배!
참고 : 내 코드에서 이미 다음 한 :
NSObject* bodyUserDataA = (__bridge NSObject*)contact->GetFixtureA()->GetBody()->GetUserData(); if ([bodyUserDataA isKindOfClass:[ODPPBarrel class]]) { barrel = (ODPPBarrel *)bodyUserDataA; }
'barrel setAnchorPoint : ccp (0.5,0.5) ;;'문을 제거해도 문제가 해결되지 않습니다. – jackofblades