rename ProcDrop -> ScatterDrop

This commit is contained in:
aozhiwei 2019-04-11 09:58:48 +08:00
parent 8384d56771
commit 9679a85aee
5 changed files with 13 additions and 34 deletions

View File

@ -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)

View File

@ -93,7 +93,7 @@ void Bullet::OnHit(std::vector<Entity*>& 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),

View File

@ -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<Human*> 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) {

View File

@ -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<Entity*>& objects);
void AddDeletedObject(unsigned short obj_uniid);
@ -42,7 +41,7 @@ public:
void TouchHumanList(a8::XParams param,
std::function<void (Human*, a8::XParams&)> 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;

View File

@ -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);