This commit is contained in:
aozhiwei 2019-04-01 19:17:48 +08:00
commit b436bfcd05
2 changed files with 10 additions and 1 deletions

View File

@ -463,15 +463,23 @@ void Room::UpdateGas()
float distance = gas_data.old_area_meta->i->shrink_speed() *
((frame_no - gas_data.gas_start_frameno) * (1.0 / SERVER_FRAME_RATE));
gas_data.gas_progress = std::max(gas_data.rad_old - distance, gas_data.rad_new);
#if 0
{
#else
if (!(gas_data.pos_new == gas_data.pos_old)) {
#endif
Vector2D p1 = gas_data.pos_new - gas_data.pos_old_bk;
if (std::abs(p1.Norm() - distance) <= 0.01f) {
gas_data.pre_pos_old = gas_data.pos_old;
if (p1.Norm() - distance <= 0.01f) {
gas_data.pos_old = gas_data.pos_new;
} else {
Vector2D dir = p1;
dir.Normalize();
gas_data.pos_old = gas_data.pos_old_bk + dir * distance;
}
if (gas_data.rad_old - distance <= gas_data.rad_new) {
assert(gas_data.pos_new == gas_data.pos_old);
}
}
if (std::abs(gas_data.gas_progress - gas_data.rad_new) <= 0.001f) {
int pre_area_id = gas_data.new_area_meta->i->id();

View File

@ -51,6 +51,7 @@ struct GasData
GasMode_e gas_mode = GasInactive;
Vector2D pos_old;
Vector2D pos_old_bk;
Vector2D pre_pos_old;
Vector2D pos_new;
float rad_old = 0.0f;
float rad_new = 0.0f;