在Cocos2d android中设置精灵动画
我想在cocos2d中使用android制作移动的在Cocos2d android中设置精灵动画,android,sprite,cocos2d-android,Android,Sprite,Cocos2d Android,我想在cocos2d中使用android制作移动的sprite动画,请帮助 这是我的密码: public void setMoveAnimation(CCSprite target) { //CCSprite target = CCSprite.sprite("Target.png"); CCAnimation OpenAnim = CCAnimation.animation("", 0.1f); for (int i = 1; i <= 2; i++) {
sprite
动画,请帮助
这是我的密码:
public void setMoveAnimation(CCSprite target) {
//CCSprite target = CCSprite.sprite("Target.png");
CCAnimation OpenAnim = CCAnimation.animation("", 0.1f);
for (int i = 1; i <= 2; i++) {
OpenAnim.addFrame(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName("target.0" + i + ".png"));
CCAction MoveAction = CCAnimate.action(1, OpenAnim, false);
target.runAction(MoveAction);
}
}
public void setMoveAnimation(CCSprite目标){
//CCSprite target=CCSprite.sprite(“target.png”);
CCAnimation OpenAnim=CCAnimation.animation(“,0.1f);
对于(int i=1;i您可以这样做:
public void openScrPpr(float duration, CCSprite player) {
CCAnimation scrPprAnim = CCAnimation.animation("", 2 / 20f);
CGSize size = CCDirector.sharedDirector().displaySize();
CCMoveTo moveTo = CCMoveTo.action(1,
CGPoint.ccp(size.getWidth(), (size.getHeight() - 40)));
for (int i = 1; i <= 7; i++) {
scrPprAnim.addFrame(CCSpriteFrameCache.sharedSpriteFrameCache()
.spriteFrameByName(i + ".png"));
if (i == 7) {
for (int j = 7; j >= 1; j--) {
scrPprAnim.addFrame(CCSpriteFrameCache
.sharedSpriteFrameCache().spriteFrameByName(j + ".png"));
}
}
}
CCIntervalAction scrPprAction = CCAnimate.action(duration, scrPprAnim, false);
CCRepeatForever forever = CCRepeatForever.action(scrPprAction);
CCRepeatForever forever2 = CCRepeatForever.action(moveTo);
player.runAction(forever);
}
public void openScrPpr(浮动持续时间,CCSprite播放器){
cAnimation-scrPprAnim=cAnimation.animation(“”,2/20f);
CGSize size=CCDirector.sharedDirector().displaySize();
CCMoveTo moveTo=CCMoveTo.action(1,
CGPoint.ccp(size.getWidth(),(size.getHeight()-40));
对于(int i=1;i=1;j--){
scrPprAnim.addFrame(CCSpriteFrameCache
.sharedSpriteFrameCache().spriteFrameByName(j+“.png”);
}
}
}
cIntervalAction scrPprAction=CCAnimate.action(持续时间,scrPprAnim,false);
CCRepeatForever=CCRepeatForever.action(SCRPON);
CCRepeatForever2=CCRepeatForever.action(移动到);
player.runAction(永远);
}
你可以这样做。这对我来说很有用。devil1.png,devil2.png像这样一直到devil4.png
CCAnimation animation=CCAnimation.animation(“舞蹈”,0.2f);
对于(int i=1;i<5;i++){
addFrame(CCFormatter.format(devil%d.png,i));
}
cIntervalAction action=cAnimate.action(动画);
target.runAction(CCRepeat.action(action,9));
我有一个对象通过使用以下代码的动画穿过屏幕:
CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFrames("ninjastar.plist");
CCSpriteSheet projectileSheet = CCSpriteSheet.spriteSheet("ninjastar.png");
addChild(projectileSheet);
ArrayList<CCSpriteFrame> projectileSprites = new ArrayList<CCSpriteFrame>();
for (int i = 1; i <= 4; i++)
{
projectileSprites.add(CCSpriteFrameCache.spriteFrameByName("ninjastar" + i + ".png"));
}
CCAnimation projectileAnimation = CCAnimation.animation("throw", 0.1f, projectileSprites);
CCSprite projectile = CCSprite.sprite(projectileSprites.get(0));
CCAction projectileAction = CCRepeatForever.action(CCAnimate.action(projectileAnimation, false));
projectile.setPosition(CGPoint.ccp(winSize.width + (projectile.getContentSize().width / 2.0f), actualY));
actionMove = CCMoveTo.action(actualDuration, CGPoint.ccp(- projectile.getContentSize().width / 2.0f + 320, actualY));
projectileSheet.addChild(projectile);
projectile.setTag(1);
projectiles.add(projectile);
CCCallFuncN actionMoveDone = CCCallFuncN.action(this, "spriteMoveFinished");
CCSequence actions = CCSequence.actions(actionMove, actionMoveDone);
projectile.runAction(actions);
projectile.runAction(projectileAction);
瓦伊沙利我正在使用这个:
ArrayList<CCSpriteFrame> jumpForwardAnimation=jumpForwardDown();
CCAnimation crocodileEatFrogJumpsUpAnimation = CCAnimation.animation("throw", 0.14f, jumpForwardAnimation);
COUNTdOWNaCTION=CCAnimate.action(crocodileEatFrogJumpsUpAnimation, false);
CCBezierConfig bezier = new CCBezierConfig();
bezier.controlPoint_1=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height*0.6f);
bezier.controlPoint_2=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height);
bezier.endPosition=location;
CCBezierTo action = CCBezierTo.action(0.5f, bezier);
CCFiniteTimeAction action2=CCSpawn.actions(COUNTdOWNaCTION,action );
CCFiniteTimeAction actionMoveDone = CCCallFunc.action(this, "frogMoveDone");
CCAction COUNTdOWNaCTION1=CCSequence.actions(action2, actionMoveDone);
frog.runAction(COUNTdOWNaCTION1);
public void frogMoveDone(){
frog.setPosition(point);
}
ArrayList jumpForwardAnimation=jumpForwardDown();
cAnimation鳄鱼eatfrogjumpsupanimation=cAnimation.animation(“投掷”,0.14f,跳跃前进动画);
COUNTdOWNaCTION=CCAnimate.action(鳄鱼形EatFrogjumpsupanimation,false);
CCBezierConfig bezier=新的CCBezierConfig();
bezier.controlPoint_1=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height*0.6f);
bezier.controlPoint_2=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height);
bezier.endPosition=位置;
CCBezierTo动作=CCBezierTo.action(0.5f,贝塞尔);
CCFiniteTimeAction action2=CCSpawn.actions(倒计时动作,动作);
CCFiniteTimeAction actionMoveDone=CCCallFunc.action(这是“frogMoveDone”);
CCAction COUNTdOWNaCTION1=CCSequence.actions(action2,actionMoveDone);
蛙式动作(倒计时动作1);
公开无效frogMoveDone(){
青蛙。设定位置(点);
}
但是我的青蛙首先用beizer路径设置动画到下一个位置,然后在改变位置后返回到上一个位置
你能告诉我这里做错了什么吗?你能探索一下出现的问题吗。你确定,我想在cocos2d中为移动的精灵设置动画
public void spriteMoveFinished(Object sender)
{
CCSprite sprite = (CCSprite)sender;
projectiles.remove(sprite);
sprite.stopAllActions();
sprite.removeFromParentAndCleanup(true);
}
ArrayList<CCSpriteFrame> jumpForwardAnimation=jumpForwardDown();
CCAnimation crocodileEatFrogJumpsUpAnimation = CCAnimation.animation("throw", 0.14f, jumpForwardAnimation);
COUNTdOWNaCTION=CCAnimate.action(crocodileEatFrogJumpsUpAnimation, false);
CCBezierConfig bezier = new CCBezierConfig();
bezier.controlPoint_1=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height*0.6f);
bezier.controlPoint_2=CGPoint.ccp(frog.getPosition().x+frog.getContentSize().width*0.5f,frog.getPosition().y+frog.getContentSize().height);
bezier.endPosition=location;
CCBezierTo action = CCBezierTo.action(0.5f, bezier);
CCFiniteTimeAction action2=CCSpawn.actions(COUNTdOWNaCTION,action );
CCFiniteTimeAction actionMoveDone = CCCallFunc.action(this, "frogMoveDone");
CCAction COUNTdOWNaCTION1=CCSequence.actions(action2, actionMoveDone);
frog.runAction(COUNTdOWNaCTION1);
public void frogMoveDone(){
frog.setPosition(point);
}