CCMenuItemImages定位?

时间:2011-08-24 06:39:17

标签: iphone cocos2d-iphone

我是cocos2d的新手,我正在尝试构建一个简单的文字游戏。我有些疑惑。

我已将字母的图像排列在屏幕底部。我已经使用CCMenuItemImage作为按钮并进行了排列。当我单独单击图像时,字母应该移动到第一个位置和第二个位置,依此类推。例如:

  • 如果有一些像b,u,t,x,y,z的字母,如果我点击任何字母,那么它应该移动到某个位置,如(200,300)(第一个位置),然后是第二个位置。然后是第三......等等。

我该怎么办?我是个菜鸟,所以要正确解释。请帮忙!!

提前致谢!!

1 个答案:

答案 0 :(得分:1)

您可能希望让CCMenuItemImage具有一个选择器来定位辅助函数,以帮助移动CCMenuItemImage。在辅助函数中,您将获得CCMenuItemImage移动代码。

要移动CCMenuItemImage,您可以学习/复制cocos2d-iphone项目示例的ActionsTest。

您可以使用CCMoveTo或CCMoveBy移动CCMenuItemImage。

动作定义为持续时间和目标位置。 CCMoveTo和CCMoveBy之间存在一些差异。重要的是CCMoveBy可以“反转”以对您的行动采取相反的行动。下面的示例将grossini移动到ccp(80,80),反向actionByBack将其移回到原始位置。可以在cocos2d-iphone项目的ActionsTest.m文件中找到以下代码。它定义了3个精灵,tamara,grossini和kathia的运动。

CGSize s = [[CCDirector sharedDirector] winSize];


id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];

id actionBy = [CCMoveBy actionWithDuration:2  position: ccp(80,80)];
id actionByBack = [actionBy reverse];

[tamara runAction: actionTo];
[grossini runAction: [CCSequence actions:actionBy, actionByBack, nil]];
[kathia runAction:[ CCMoveTo actionWithDuration:1 position:ccp(40,40)]];

因此,在您的情况下,如果您的CCMenuItem被称为_alphabet1,您可以使用actionBy操作定义示例执行以下操作

[_alphabet1 runAction: [CCSequence actions:actionBy, actionByBack, nil]];

这会在2秒内将你的_alphabet1 CCMenuItemImage发送到ccp(80,80)并在2秒内反转回原点。

如果您只想将CCMenuItem移动到某个位置而不是反转,只需使用CCMoveTo。