如何在VOID语句中制作动画? XCODE

时间:2013-03-24 23:24:58

标签: cocos2d-iphone kobold2d

-(void) redafter1
{

red = [CCMenuItemImage
       itemFromNormalImage:@"red.png" selectedImage:@"redclick.png"];
red.position = ccp(175, 725);
redMenu = [CCMenu menuWithItems:red, nil];
redMenu.position = CGPointZero;
redMenu.scale = .75;
[self addChild:redMenu z:10];
}

如何动画此对象移动到屏幕上的其他位置?我对此非常陌生,请在解释中作为基础。

2 个答案:

答案 0 :(得分:0)

如果要为CCNode设置动画(这是所有cocos2d对象的基类,例如图层,精灵,标签,菜单项等),则必须使用动作机制。要移动对象,请使用带有runAction:方法的CCMoveTo,CCMoveBy操作。

id moveAction = [CCMoveTo actionWithDuration: animationDuration position: targetPosition];
[nodeToAnimate runAction: moveAction];

在您的情况下,如果您在将对象添加到某个父对象后立即对该对象执行操作(即您的场景或其他可见父对象),则会在对象出现后立即启动该操作。

答案 1 :(得分:0)

您在[redMenu runAction:[CCMoveTo actionWithDuration:time position:place]];函数的末尾添加redafter1(您选择时间和位置),因此当最终通过init等方法调用父方法时,您的菜单会移动。

记住你不能移动CCMenuItemImage因为它被锁定在CCMenu的位置。你必须移动CCMenu本身。

希望这有用。