《塔防类手游开发教程》 第八节 炮塔子弹与怪物碰撞添加爆炸动画
来源:互联网 发布:中国电信大数据事业部 编辑:程序博客网 时间:2024/05/01 00:49
在塔防游戏中,炮塔发射子弹攻击怪物,要保证攻击有效,需要加入子弹与怪物的碰撞,否则子弹就穿过怪物不能造成掉血。当怪物的血量为零,怪物会消失,但是仅仅是消失,在视觉感官上会觉得无聊,玩家可能认为出现什么bug,那么我们应该加入一个爆炸动画,这样怪物死亡的时候爆炸,玩家就知道那代表怪物死亡了。
具体代码:
在Boom.cpp中实现爆炸动画
Boom* Boom::newBoom(int x,int y){
Boom * boom=Boom::create();
Vector<SpriteFrame* >allf;
for (int i=1;i<=6; i++) {
SpriteFrame * sf=SpriteFrameCache::getInstance()->getSpriteFrameByName(
StringUtils::format("explode1_%d.png",i));
allf.pushBack(sf);
}
auto animation=Animation::createWithSpriteFrames(allf);
animation->setDelayPerUnit(0.3);
auto animate=Animate::create(animation);
//auto act1=DelayTime::create(2);
auto act2=CallFunc::create(CC_CALLBACK_0(Boom::killMe, boom));
Sprite * sp=Sprite::create();
sp->setPosition(x,y);
boom->addChild(sp);
sp->runAction(Sequence::create(animate,act2, NULL));
return boom;
}
在Gamescene.cpp中调用爆炸动画并检测碰撞
void GameScene::update(float t){
//检测碰撞
for (int i=0;i<GameScene::allBullet.size();i++) {
Bullet * b=GameScene::allBullet.at(i);
for (int j=0; j<GameScene::allEnemy.size(); j++) {
Enemy * e=GameScene::allEnemy.at(j);
Rect rb(b->getPosition().x,b->getPosition().y,35,8);
Rect re(e->getPosition().x,e->getPosition().y,127,151);
if (rb.intersectsRect(re)) {
e->hp--;//掉血
e->changeHp();
if(e->hp<=0)
{
moneyLabel->setString(StringUtils::format("%d",money));
//爆炸效果
Boom * boom=Boom::newBoom(e->getPosition().x, e->getPosition().y);
this->addChild(boom);
//移除敌人
e->removeFromParent();
GameScene::allEnemy.eraseObject(e);
}
b->removeFromParent();
GameScene::allBullet.eraseObject(b);
i--;
break;
}
}
- 《塔防类手游开发教程》 第八节 炮塔子弹与怪物碰撞添加爆炸动画
- 用Quick3.3简单开发微信打飞机03 添加爆炸动画和子弹与敌机的碰撞
- 用Quick-Cocos2d-x 3.3简单开发微信打飞机 -03 添加爆炸动画和子弹与敌机的碰撞
- 《塔防类手游开发教程》 第七节 炮塔发射子弹
- 《塔防类手游开发教程》 第七节 炮塔发射子弹
- unity3d添加子弹爆炸预制体动画
- 《塔防类手游开发教程》 第四节 添加一组怪物
- android 游戏 实战打飞机游戏 子弹生成与碰撞 以及爆炸效果(5)
- 开发笔记10-cocos2d之发射子弹与检测碰撞
- 飞机大战开发04子弹与敌机的碰撞检测
- 《塔防类手游开发教程》 第三节 通过动作序列Sequence实现怪物移动
- cocos2d-x游戏开发系列教程-坦克大战游戏之子弹和地图碰撞
- cocos2d-x游戏开发系列教程-坦克大战游戏之子弹的碰撞检测处理
- Space Shooter之子弹和敌人碰撞检测、爆炸特效以及敌人的运动
- 第八节一个动画的设计
- Cocos2d-x碰撞检测原理与英雄要打死怪物--之游戏开发《赵云要格斗》(7)
- Cocos2d-x碰撞检测原理与英雄要打死怪物--之游戏开发《赵云要格斗》(7)
- 学校学习ios教程笔记,第八节初识ios控件中的UILable与UITextField
- 确定需要改变几个位,才能把整数a变成整数b
- (素材源码)猫猫学IOS(三十五)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。
- 《塔防类手游开发教程》 第七节 炮塔发射子弹
- Java面向对象(上)
- Recent键及状态栏屏蔽
- 《塔防类手游开发教程》 第八节 炮塔子弹与怪物碰撞添加爆炸动画
- Android存储方式
- 《塔防类手游开发教程》 第九节 怪物加入血槽以及金币数值
- 《塔防类手游开发教程》 第十节 创建关卡配置文件动态读取关卡信息
- hdu 1261 字串数 排列组合
- Matlab中find函数的用法
- 《塔防类手游开发教程》 第十一节 根据关卡文件动态出怪
- SizeClass和AutoLayout教程1
- 《塔防类手游开发教程》 第十二节 过关后关卡切换