今天把飞机游戏的一些动画给实现了一部分:
飞机连续发射子弹:
1.首先定义一个常量;#define SP 10
2.在.h文件定义一个私有变量;private:
int sp = 0;
3.在构造函数里面赋值0;this->sp = 0;
4.利用moveTo,移动子弹;
auto move = MoveTo::create(0.5, Vec2(visibleSize.width / 2, visibleSize.height + sp->getContentSize().height / 2));
this->addChild(sp);
sp->runAction(move);
5.变量的自加;this->sp++;
6.判定变量是否等于常量;this->sp >= SP
7.利用计时器循环发射子弹;this->scheduleUpdate();
8.最后在判断里面重新赋值0;this->sp = 0;
飞机的移动:
1.通过API 查找到相关的移动,先是通过复制一段代码实现了随着鼠标移动,很多地方不是很懂
2.最主要的还是对边界的判定;
x轴的判定:
if (target->getPositionX() + touch->getDelta().x >= visibleSize.width - target->getContentSize().width / 2){
target->setPositionX(visibleSize.width - target->getContentSize().width / 2);
}else if (target->getPositionX() + touch->getDelta().x <= target->getContentSize().width / 2){
target->setPositionX(target->getContentSize().width / 2);
}
y轴的判定:
if (target->getPositionY() + touch->getDelta().y >= visibleSize.height - target->getContentSize().height / 2){
target->setPositionY(visibleSize.height - target->getContentSize().height / 2);
}
else if (target->getPositionY() + touch->getDelta().y <= target->getContentSize().height / 2){
target->setPositionY(target->getContentSize().height / 2);
}
target->setPosition(target->getPosition() + touch->getDelta());
今天也有说到对飞机子弹的跟随飞机的移动一起移动,但是没有完成。