我是cocos2d的新手,我正在尝试构建一个简单的文字游戏。我有些疑惑。
我已将字母的图像排列在屏幕底部。我已经使用CCMenuItemImage作为按钮并进行了排列。当我单独单击图像时,字母应该移动到第一个位置和第二个位置,依此类推。例如:
我该怎么办?我是个菜鸟,所以要正确解释。请帮忙!!
提前致谢!!
答案 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。