开发者

COCOS2D for iOS - CCMoveTo does not work...?

sorry, my english level is very low.

my code...

CCNode *A = [self getChildByTag:kATag];
CCNode *B = [self getChildByTag:kBTag];

CCMoveTo *MoveAction = [CCMoveTo actionWithDuration:1.0f position:A.position.x, 0];

[A runAction:[[MoveAction]copy];
[B runAction:[[MoveAction]copy];

B 开发者_如何学编程sprite is moved. but A sprite does Not Move.

so, i added

[A stopAllActions];
[A runAction:[[MoveAction]copy];
[B runAction:[[MoveAction]copy];

but does not work.

[A setVisible:NO] 

so, this code is work. Sprite A is Hide.

Why CCMoveTO does not work????


CCMoveTo was deprecated in V3, now CCActionMoveTo is used.

Try this:

CGPoint location = [touch locationInView:[touch view]];
CGPoint convertedLocation = [[CCDirector sharedDirector] convertToGL:location];

CCActionMoveTo *MoveAction = [CCActionMoveTo actionWithDuration:1.0f position:convertedLocation];

[A runAction:[[MoveAction]copy];
[B runAction:[[MoveAction]copy];


Try with

CMoveTo *MoveAction = [CCMoveTo actionWithDuration:1.0f position:CGPointMake(A.position.x, 0)];

Also, what is the A's Y position? If it is 0, then it won't move anywhere.


CCNode *A = [self getChildByTag:kATag];
CCNode *B = [self getChildByTag:kBTag];

CCMoveTo *MoveActionA = [CCMoveTo actionWithDuration:1.0f position:A.position.x+10, 0];
CCMoveTo *MoveActionB = [CCMoveTo actionWithDuration:1.0f position:B.position.x+10, 0];

[A runAction:MoveActionA];
[B runAction:MoveActionB];
  • Each CCNode must have its own CCAction object. You can't use a single CCAction for multiple CCNodes.
  • Double check that the position you are moving to is correct. In your code it is possible to you were moving it to its current position.
  • There was no need for the "copy" to run the action.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜