This commit is contained in:
aozhiwei 2019-03-27 17:51:41 +08:00
parent 5b05533500
commit 7d9d38aee9
5 changed files with 5 additions and 0 deletions

View File

@ -73,6 +73,7 @@ void Bullet::OnHit(std::vector<Entity*>& objects)
if (!obstacle->dead && obstacle->meta->i->attackable()) {
obstacle->health = std::min(0.0f, obstacle->health - 10);
obstacle->dead = std::min(obstacle->health, 0.001f) <= 0.01f;
obstacle->dead_frameno = room->frame_no;
if (obstacle->dead) {
obstacle->ClearColliders();
room->ProcDrop(obstacle->pos, obstacle->meta->i->drop());

View File

@ -81,4 +81,5 @@ void Obstacle::FillMFObjectFull(cs::MFObjectFull* full_data)
p->set_obstacle_id(meta->i->thing_id());
p->set_health(health);
p->set_dead(dead);
p->set_dead_at_thisframe(dead ? dead_frameno < room->frame_no : false);
}

View File

@ -18,6 +18,7 @@ class Obstacle : public Entity
MetaData::MapThing* meta = nullptr;
float health = 0.0f;
bool dead = false;
long long dead_frameno = 0;
Obstacle();
virtual ~Obstacle() override;

View File

@ -19,6 +19,7 @@ const int ANDROID_NUM = 0;
void Room::Update(int delta_time)
{
elapsed_time_ += delta_time;
++frame_no;
while (elapsed_time_ >= 50) {
ResetFrameData();
int i = 0;

View File

@ -33,6 +33,7 @@ public:
long long room_uuid = 0;
MetaData::Map* map_meta = nullptr;
RoomFrameData frame_data;
long long frame_no = 0;
void Update(int delta_time);
bool IsFull();