2

Cocos2d-android - 我有一个有 5 帧的动画。这将滚动到位。如何使按钮像地球一样滚动。

4

2 回答 2

1

我不知道它是否可以像 menuitem 那样完成,但你可以制作一个永远动作的精灵(你的 5 帧动画),并在 ccTouchesBegan/ccTouchesEnded 中添加代码以转到另一个场景或在触摸后执行另一个功能在你的精灵上。

`private CCSprite animatedButton; // Make your sprite visible at begin of your class/layer.`


`animatedButton = CCSprite.sprite("yourImage.png");
 CCAnimation buttonAnimation = CCAnimation.animation("", 1f);
 buttonAnimation.addFrame("1.png");     
 buttonAnimation.addFrame("2.png"); 
 addChild(animatedButton, 1);
 CCIntervalAction buttonAction = CCAnimate.action(duration, buttonAnimation, false);
 animatedButton.runAction(CCRepeatForever.action(buttonAction));
 `

现在应该是您的按钮(CCSprite)动画。我没有尝试过代码。现在您只需在 ccTouchesBegan 或 ccTouchesEnded 中查看您的按钮是否被触摸。如果是的话,你可以做你想做的事。:)

`if(animatedButton.getBoundingBox.contains(x,y)){
   CCScene scene = GameLayer.scene();       
   CCDirector.sharedDirector().replaceScene(scene);
 }`

X 和 y 是触摸坐标;

于 2013-07-29T10:10:20.697 回答
0

您可以将动画添加到 menuitem。像这样

CCMenuItem button=CCMenuItemImage.item(image, image, this, "label");
    button.setScaleX((winSize.width/8.0f)/image.getTexture().getWidth());
    button.setScaleY((winSize.height/8.0f)/image.getTexture().getHeight());
    button.setPosition(winSize.width/2,winSize.height+50);

    CCAction actionMove42=CCSequence.actions(CCDelayTime.action(0.3f), CCEaseBackOut.action(CCMoveTo.action(1.0f, CGPoint.ccp(0,0))));
    button.runAction(actionMove42);
于 2013-10-29T07:05:30.483 回答