2013-07-27 88 views

回答

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是觸摸的座標;

+0

對不起史蒂夫你的代碼對於替換一個場景很有用。我問了關於按鈕動畫。 –

+0

我編輯了我的答案。我希望我能更多地幫助你。 – StevoF

+0

謝謝史蒂夫你的代碼幫助我很多。 –

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