适用于iOS的COCOS2D - CCMoveTo不起作用......?

时间:2011-09-20 22:39:33

标签: cocos2d-iphone

抱歉,我的英语水平非常低。

我的代码......

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精灵被移动了。 但精灵不动。

所以,我添加了

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

但不起作用。

[A setVisible:NO] 

所以,这段代码是有效的。 精灵A是隐藏。

为什么CCMoveTO不起作用????

3 个答案:

答案 0 :(得分:2)

CCMoveTo已在V3中弃用,现在使用了CCActionMoveTo

试试这个:

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];

答案 1 :(得分:1)

尝试

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

此外,A的Y位置是什么?如果它是0,那么它就不会移动到任何地方。

答案 2 :(得分:0)

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];
  • 每个CCNode必须有自己的CCAction对象。您不能将单个CCAction用于多个CCNode。
  • 仔细检查您要移动的位置是否正确。在您的代码中,您可以将其移动到当前位置。
  • 没有必要使用“副本”来执行此操作。