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(); float distance = (pos - born_pos).Norm();
if (meta->i->_inventory_slot() == 5 || if (meta->i->_inventory_slot() == 5 ||
meta->i->_inventory_slot() == 6) { 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(); ProcBomb();
} }
} else { } else {
@ -118,7 +124,12 @@ void Bullet::ProcBomb()
explosions = &itr->second; 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(); cs::MFExplosion* explosion = explosions->Add();
explosion->set_item_id(meta->i->id()); explosion->set_item_id(meta->i->id());
bomb_pos.ToPB(explosion->mutable_pos()); bomb_pos.ToPB(explosion->mutable_pos());
@ -138,7 +149,12 @@ void Bullet::ProcBomb()
smokes = &itr->second; 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(); cs::MFSmoke* smoke = smokes->Add();
smoke->set_item_id(meta->i->id()); smoke->set_item_id(meta->i->id());
bomb_pos.ToPB(smoke->mutable_pos()); bomb_pos.ToPB(smoke->mutable_pos());