[Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(三)之初级炮塔
来源:互联网 发布:个人征信数据 编辑:程序博客网 时间:2024/05/01 03:41
该章节主要介绍初级炮塔
与箭塔相比,箭塔一共需要只需要1-2张图片,除了弓箭手,塔是静止的,而炮塔相对比较复杂
从图中我们可以看出,炮塔的动作序列比较复杂,所以只需要将一个个动画序列分清楚,好在我们用的现成的图片资源,只要一个个通过addchild添加进去即可,然后用动画序列播放。
首先重载shoot
void BaseArtilleryTower::shoot(float dt){ checkNearestMonster(); if(nearestMonster!=NULL && nearestMonster->getCurrHp() > 0) {auto firePosition = nearestMonster->baseSprite->getPosition() - this->getParent()->getPosition();runAction(Sequence::create(CallFuncN::create(CC_CALLBACK_0(BaseArtilleryTower::fireAnimation,this)),CallFuncN::create(CC_CALLBACK_0(BaseArtilleryTower::fire,this,firePosition)),NULL)); }}当射程范围内有敌人时,按顺序执行这个序列
先是左边的炮手蹲下并上抛这个动作,然后是炮弹飞到炮筒的动画
void BaseArtilleryTower::filledAnimation(){ leftShooter->runAction(Animate::create(AnimationCache::getInstance()->getAnimation(getName()+"leftShooter_throw"))); c4->runAction(Animate::create(AnimationCache::getInstance()->getAnimation(getName()+"c4")));}之后执行fire将炮弹发射出去,基本原理和弓箭塔差不多,并且简单不少
void BaseArtilleryTower::fire(Point firePosition){auto currBullet = ArtilleryTowerBullet();auto shootVector = firePosition;Point highPoint = Point(shootVector.x,shootVector.y+200);ccBezierConfig bezier;bezier.controlPoint_1 = Point(currBullet->getPosition().x,currBullet->getPosition().y+200); bezier.controlPoint_2 = Point(shootVector.x,shootVector.y+200);; bezier.endPosition = shootVector;float endRotate;if(shootVector.x>currBullet->getPosition().x)endRotate = 180.0f;elseendRotate = -180.0f;auto action = Spawn::create(BezierTo::create(1.0f, bezier),RotateTo::create(1.0f,endRotate),NULL);currBullet->setBulletAction(action);currBullet->shoot();runAction(Sequence::create(DelayTime::create(1.0f),CallFuncN::create(CC_CALLBACK_0(BaseArtilleryTower::filledAnimation,this)),NULL));currBullet = NULL;}
filledAnimation是右边的炮手和炮筒的动画这里就省略了
其中炮弹的动画与弓箭的动画区别就是旋转角度是转一圈,其他区别不大~
因为比较简单,这章就粗略介绍下
0 0
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(三)之初级炮塔
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(七)之士兵
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(二)之初级箭塔
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(一)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(四)之升级防御塔
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(五)之高级箭塔
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(六)之兵营塔
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--敌人(二)之BOSS
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--其他
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--地图(一)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--地图(二)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--子弹类(一)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--敌人(一)
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--游戏开始界面
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--简介+代码+资源
- Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--简介+代码+资源
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--简介+代码+资源
- 远古守卫/cocos2d-x 源码/塔防游戏/高仿王国保卫战
- css 加载中的动态原点图
- Windows和Linux通信
- 正则表达式
- ubuntu 静态IP配置 以及 DNS 配置
- 04-树5 二叉平衡树
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(三)之初级炮塔
- 洛谷10月月赛参·最后的狂欢
- mac安装MySQL
- Ubuntu 14.04安装软件列表(install software)
- 修改SqlServer的sa用户密码
- Linux基本命令一の安装及管理应用程序
- 从头认识java-3.1 for each
- 实际项目中页面标签的使用
- 避免Time Machine备份Parallels Desktop的HDD虚拟硬盘文件