From 9679a85aeefaf5683eefbe5b77096ad7bbd65c77 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 11 Apr 2019 09:58:48 +0800 Subject: [PATCH] rename ProcDrop -> ScatterDrop --- server/gameserver/app.cc | 2 +- server/gameserver/bullet.cc | 2 +- server/gameserver/room.cc | 34 ++++++---------------------------- server/gameserver/room.h | 7 ++++--- server/gameserver/roommgr.cc | 2 +- 5 files changed, 13 insertions(+), 34 deletions(-) diff --git a/server/gameserver/app.cc b/server/gameserver/app.cc index 1855f05..2c85ec9 100755 --- a/server/gameserver/app.cc +++ b/server/gameserver/app.cc @@ -219,8 +219,8 @@ void App::QuickExecute(int delta_time) { ProcessIMMsg(); DispatchMsg(); - a8::Timer::Instance()->Update(); RoomMgr::Instance()->Update(delta_time); + a8::Timer::Instance()->Update(); } void App::SlowerExecute(int delta_time) diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 370f3ee..2297c72 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -93,7 +93,7 @@ void Bullet::OnHit(std::vector& objects) obstacle->dead_frameno = room->frame_no; if (obstacle->dead) { obstacle->ClearColliders(); - room->ProcDrop(obstacle->pos, obstacle->meta->i->drop()); + room->ScatterDrop(obstacle->pos, obstacle->meta->i->drop()); } room->TouchPlayerList(a8::XParams() .SetSender(obstacle), diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index c3d0051..aa58830 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -17,6 +17,11 @@ const int ROOM_MAX_PLAYER_NUM = 50; const int ANDROID_NUM = 10; +void Room::Initialize() +{ + ShuaAndroid(); +} + void Room::Update(int delta_time) { elapsed_time_ += delta_time; @@ -169,33 +174,6 @@ void Room::ShuaAndroid() } } -bool Room::RandomPos(Human* hum, float distance, Vector2D& out_pos) -{ - Vector2D dir = hum->pos; - dir.Rotate(a8::RandAngle()); - dir.Normalize(); - CircleCollider collider; - collider.owner = hum; - collider.pos = dir * distance; - collider.rad = hum->meta->i->radius(); - - for (auto& pair : uniid_hash_) { - if (pair.second->entity_type == ET_Player || - pair.second->entity_type == ET_Bullet - ) { - continue; - } else { - for (auto& itr : pair.second->colliders) { - if (collider.Intersect(itr)) { - return false; - } - } - } - } - out_pos = hum->pos + collider.pos; - return true; -} - Human* Room::FindEnemy(Human* hum) { std::vector enemys; @@ -285,7 +263,7 @@ void Room::ResetFrameData() frame_data.emotes.Clear(); } -void Room::ProcDrop(Vector2D center, int drop_id) +void Room::ScatterDrop(Vector2D center, int drop_id) { MetaData::Drop* drop_meta = MetaMgr::Instance()->GetDrop(drop_id); if (drop_meta) { diff --git a/server/gameserver/room.h b/server/gameserver/room.h index cc05eb3..2ee2200 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -23,6 +23,7 @@ public: long long frame_no = 0; GasData gas_data; + void Initialize(); void Update(int delta_time); bool IsFull(); int GetPlayerNum(); @@ -31,8 +32,6 @@ public: Player* GetPlayerByUniId(unsigned short uniid); Entity* GetEntityByUniId(unsigned short uniid); void AddPlayer(Player* hum); - void ShuaAndroid(); - bool RandomPos(Human* hum, float distance, Vector2D& out_pos); Human* FindEnemy(Human* hum); void CollisionDetection(Entity* sender, int detection_flags, std::vector& objects); void AddDeletedObject(unsigned short obj_uniid); @@ -42,7 +41,7 @@ public: void TouchHumanList(a8::XParams param, std::function func); void BeAddedObject(Entity* entity); - void ProcDrop(Vector2D center, int drop_id); + void ScatterDrop(Vector2D center, int drop_id); void CreateThings(); void FillSMMapInfo(cs::SMMapInfo& map_info); void DropItem(Vector2D pos, int item_id); @@ -56,6 +55,7 @@ public: private: unsigned short AllocUniid(); + void ShuaAndroid(); void ResetFrameData(); void ClearDeletedObjects(); void ProcAddedObjects(); @@ -64,6 +64,7 @@ private: Vector2D& out_pos); private: + a8::TimerAttacher timer_attacher_; int elapsed_time_ = 0; int alive_count_ = 0; diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index ca4bc32..8d8c474 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -41,7 +41,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg) abort(); } room->map_meta = MetaMgr::Instance()->GetMap(1001); - room->ShuaAndroid(); + room->Initialize(); room_hash_[room->room_uuid] = room; } Player* hum = PlayerMgr::Instance()->CreatePlayerByCMJoin(hdr.socket_handle, msg);