CCJumpBy函数的调试应用一:
//小鸟上下飞 不断循环 参数跳稍调快的话效果看起来像jump
CCActionInterval* actionUp = CCJumpBy::create(10, ccp(0,0), 30, 4);
bird->runAction( CCRepeatForever::create(actionUp));
CCJumpBy函数
直接这两行放在你创建精灵时写的代码this->addChild(bird);这行后面就行
参数说明:时间秒,移动点,高度,步数
即你调整第1个参数,控制小鸟的速度快慢
第3个参数,控制小鸟往上面的Y轴高度。
就可以看到bird上下飞飞不断循环。
CCJumpBy函数的调试二:
CCActionInterval* actionBy = CCJumpBy::create(10, CCPointMake(getWinSize().width/2, getWinSize().height/2+100), 50, 14);
CCActionInterval* actionByBack = actionBy->reverse();//让动作回到actionBy之前的地方
bird->runAction( CCSequence::create(actionBy, actionByBack, NULL));
如果改为将这3行放在你创建精灵时写的代码this->addChild(bird);这行后面
小鸟会渐渐地往右上方飞离屏幕,然后又慢慢地退回原来的地方
CCJumpBy函数的调试三:
CCActionInterval* actionBy = CCJumpBy::create(10, CCPointMake(getWinSize().width/2, getWinSize().height/2-200), 50, 14);
CCActionInterval* actionByBack = actionBy->reverse();//让动作回到actionBy之前的地方
bird->runAction( CCSequence::create(actionBy, actionByBack, NULL));
如果改为将这3行放在你创建精灵时写的代码this->addChild(bird);这行后面
小鸟会渐渐地往右下方飞离屏幕,然后又慢慢地退回原来的地方
CCMoveTo函数的调试一:
int actualDuration = 10;
CCMoveTo *actionMove = CCMoveTo::create(actualDuration, ccp(getWinSize().width/2, getWinSize().height/2+200+100));
*bird->runAction(CCSequence::create(actionMove, NULL));
如果改为将这3行放在你创建精灵时写的代码this->addChild(bird);这行后面
小鸟会渐渐地往直上方飞,而且其中有代码的Y轴数值比较大,有可能会飞离屏幕
CCMoveTo函数的调试二:
int actualDuration = 10;
CCMoveTo *actionMove = CCMoveTo::create(actualDuration, ccp(0, 200+100));
*bird->runAction(CCSequence::create(actionMove, NULL));
如果改为将这3行放在你创建精灵时写的代码this->addChild(bird);这行后面
小鸟会渐渐地往cocos2d-x的坐标(0,300)飞。
int actualDuration = 10;
CCMoveTo *actionMove = CCMoveTo::create(actualDuration, ccp(getWinSize().width/3, 0-getContentSize().height/2));//假如没有遇到碰撞,小鸟Y轴向下飞 直到飞出屏幕
bird->runAction(CCSequence::create(actionMove, NULL));
如果改为将这3行放在你创建精灵时写的代码this->addChild(bird);这行后面
如果小鸟原本位于getWinSize().width/3即屏幕左侧3分之一处,则小鸟Y轴向下飞 直到飞出屏幕
void ReadyGameLayer::spriteMoveFinished(CCNode *sender) //回调函数spriteMoveFinished,进行删除精灵对象 { CCSprite *sprite = (CCSprite*)sender; this->removeChild(sprite, true); } |