This commit is contained in:
aozhiwei 2019-04-08 15:38:38 +08:00
parent 35fd26271d
commit 88bb1919e3

View File

@ -33,8 +33,14 @@ void Bullet::Update(int delta_time)
float distance = (pos - born_pos).Norm();
if (meta->i->_inventory_slot() == 5 ||
meta->i->_inventory_slot() == 6) {
if (distance >= fly_distance) {
//炸弹烟雾弹飞到目的地
std::vector<Entity*> objects;
int detection_flags = 0;
{
a8::SetBitFlag(detection_flags, ET_Obstacle);
a8::SetBitFlag(detection_flags, ET_Building);
}
room->CollisionDetection(this, detection_flags, objects);
if (!objects.empty() || distance >= fly_distance) {
ProcBomb();
}
} else {
@ -118,7 +124,12 @@ void Bullet::ProcBomb()
explosions = &itr->second;
}
Vector2D bomb_pos = born_pos + born_dir * fly_distance;
#if 1
Vector2D bomb_pos = pos;
#else
float distance = (pos - born_pos).Norm();
Vector2D bomb_pos = born_pos + born_dir * distance;
#endif
cs::MFExplosion* explosion = explosions->Add();
explosion->set_item_id(meta->i->id());
bomb_pos.ToPB(explosion->mutable_pos());
@ -138,7 +149,12 @@ void Bullet::ProcBomb()
smokes = &itr->second;
}
Vector2D bomb_pos = born_pos + born_dir * fly_distance;
#if 1
Vector2D bomb_pos = pos;
#else
float distance = (pos - born_pos).Norm();
Vector2D bomb_pos = born_pos + born_dir * distance;
#endif
cs::MFSmoke* smoke = smokes->Add();
smoke->set_item_id(meta->i->id());
bomb_pos.ToPB(smoke->mutable_pos());