Cocos HTML5,动画精灵

时间:2013-08-06 13:56:14

标签: cocos2d-x cocos2d-html5

我想知道如何将一个精灵从屏幕中心移动到距屏幕顶边10个像素。从而让它看起来像是在向上移动。

这是我目前的代码

var LoginLayer = cc.Layer.extend({

init:function () {

    //////////////////////////////
    // 1. super init first
    this._super();

    /////////////////////////////
    // 2. add a menu item with "X" image, which is clicked to quit the program
    //    you may modify it.
    // ask director the window size
    var size = cc.Director.getInstance().getWinSize();

    //Create Background Layer
    var background = cc.LayerColor.create( g_Colors.cedarWoodFinish, size.width, size.height);
    background.setAnchorPoint( cc.p(0.5,0.5) );

    //Create Logo Layer
    var logo = cc.Sprite.create(s_logo);
    logo.setAnchorPoint(cc.p(0.5, 1));
    logo.setPosition(cc.p(size.width / 2, size.height + ((logo.getContentSize().height * logo.getScaleY()) /2)));
    logo.setScale(0.5);

    //Add Layers To Scene
    this.addChild(background);
    this.addChild(logo);

    var logoMoveUpAnimation = cc.MoveTo.create(2, cc.p(size.width / 2, size.height - 10) );
    logo.runAction(logoMoveUpAnimation);
}
});

var LoginScene = cc.Scene.extend({
onEnter:function () {
    this._super();
    var layer = new LoginLayer();
    this.addChild(layer);
    layer.init();
}
});

1 个答案:

答案 0 :(得分:1)

您使用的是哪种版本的Cocos 2d-x?对于Cocos 2d-x rc0 2.1.3,您可以使用这些代码行移动Sprite。

CCSize size = CCDirector::sharedDirector()->getWinSize();
actualY = size.height - 10;
CCFiniteTimeAction* actionMove = 
        CCMoveTo::create( 9.0,ccp(logo->getContentSize().width/2, actualY) );
         CCFiniteTimeAction* actionMoveDone = 
        CCCallFuncN::create( this, 
        callfuncN_selector(HelloWorld::LogoMoveFinished));
    logo->runAction( CCSequence::create(actionMove, 
        actionMoveDone, NULL) );

此处徽标移动到位置(logosize / 2,screenheight-10pixels)。移动徽标时调用LogoMoveFinished函数。