rename ProcDrop -> ScatterDrop
This commit is contained in:
parent
8384d56771
commit
9679a85aee
@ -219,8 +219,8 @@ void App::QuickExecute(int delta_time)
|
|||||||
{
|
{
|
||||||
ProcessIMMsg();
|
ProcessIMMsg();
|
||||||
DispatchMsg();
|
DispatchMsg();
|
||||||
a8::Timer::Instance()->Update();
|
|
||||||
RoomMgr::Instance()->Update(delta_time);
|
RoomMgr::Instance()->Update(delta_time);
|
||||||
|
a8::Timer::Instance()->Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::SlowerExecute(int delta_time)
|
void App::SlowerExecute(int delta_time)
|
||||||
|
@ -93,7 +93,7 @@ void Bullet::OnHit(std::vector<Entity*>& objects)
|
|||||||
obstacle->dead_frameno = room->frame_no;
|
obstacle->dead_frameno = room->frame_no;
|
||||||
if (obstacle->dead) {
|
if (obstacle->dead) {
|
||||||
obstacle->ClearColliders();
|
obstacle->ClearColliders();
|
||||||
room->ProcDrop(obstacle->pos, obstacle->meta->i->drop());
|
room->ScatterDrop(obstacle->pos, obstacle->meta->i->drop());
|
||||||
}
|
}
|
||||||
room->TouchPlayerList(a8::XParams()
|
room->TouchPlayerList(a8::XParams()
|
||||||
.SetSender(obstacle),
|
.SetSender(obstacle),
|
||||||
|
@ -17,6 +17,11 @@
|
|||||||
const int ROOM_MAX_PLAYER_NUM = 50;
|
const int ROOM_MAX_PLAYER_NUM = 50;
|
||||||
const int ANDROID_NUM = 10;
|
const int ANDROID_NUM = 10;
|
||||||
|
|
||||||
|
void Room::Initialize()
|
||||||
|
{
|
||||||
|
ShuaAndroid();
|
||||||
|
}
|
||||||
|
|
||||||
void Room::Update(int delta_time)
|
void Room::Update(int delta_time)
|
||||||
{
|
{
|
||||||
elapsed_time_ += 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)
|
Human* Room::FindEnemy(Human* hum)
|
||||||
{
|
{
|
||||||
std::vector<Human*> enemys;
|
std::vector<Human*> enemys;
|
||||||
@ -285,7 +263,7 @@ void Room::ResetFrameData()
|
|||||||
frame_data.emotes.Clear();
|
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);
|
MetaData::Drop* drop_meta = MetaMgr::Instance()->GetDrop(drop_id);
|
||||||
if (drop_meta) {
|
if (drop_meta) {
|
||||||
|
@ -23,6 +23,7 @@ public:
|
|||||||
long long frame_no = 0;
|
long long frame_no = 0;
|
||||||
GasData gas_data;
|
GasData gas_data;
|
||||||
|
|
||||||
|
void Initialize();
|
||||||
void Update(int delta_time);
|
void Update(int delta_time);
|
||||||
bool IsFull();
|
bool IsFull();
|
||||||
int GetPlayerNum();
|
int GetPlayerNum();
|
||||||
@ -31,8 +32,6 @@ public:
|
|||||||
Player* GetPlayerByUniId(unsigned short uniid);
|
Player* GetPlayerByUniId(unsigned short uniid);
|
||||||
Entity* GetEntityByUniId(unsigned short uniid);
|
Entity* GetEntityByUniId(unsigned short uniid);
|
||||||
void AddPlayer(Player* hum);
|
void AddPlayer(Player* hum);
|
||||||
void ShuaAndroid();
|
|
||||||
bool RandomPos(Human* hum, float distance, Vector2D& out_pos);
|
|
||||||
Human* FindEnemy(Human* hum);
|
Human* FindEnemy(Human* hum);
|
||||||
void CollisionDetection(Entity* sender, int detection_flags, std::vector<Entity*>& objects);
|
void CollisionDetection(Entity* sender, int detection_flags, std::vector<Entity*>& objects);
|
||||||
void AddDeletedObject(unsigned short obj_uniid);
|
void AddDeletedObject(unsigned short obj_uniid);
|
||||||
@ -42,7 +41,7 @@ public:
|
|||||||
void TouchHumanList(a8::XParams param,
|
void TouchHumanList(a8::XParams param,
|
||||||
std::function<void (Human*, a8::XParams&)> func);
|
std::function<void (Human*, a8::XParams&)> func);
|
||||||
void BeAddedObject(Entity* entity);
|
void BeAddedObject(Entity* entity);
|
||||||
void ProcDrop(Vector2D center, int drop_id);
|
void ScatterDrop(Vector2D center, int drop_id);
|
||||||
void CreateThings();
|
void CreateThings();
|
||||||
void FillSMMapInfo(cs::SMMapInfo& map_info);
|
void FillSMMapInfo(cs::SMMapInfo& map_info);
|
||||||
void DropItem(Vector2D pos, int item_id);
|
void DropItem(Vector2D pos, int item_id);
|
||||||
@ -56,6 +55,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned short AllocUniid();
|
unsigned short AllocUniid();
|
||||||
|
void ShuaAndroid();
|
||||||
void ResetFrameData();
|
void ResetFrameData();
|
||||||
void ClearDeletedObjects();
|
void ClearDeletedObjects();
|
||||||
void ProcAddedObjects();
|
void ProcAddedObjects();
|
||||||
@ -64,6 +64,7 @@ private:
|
|||||||
Vector2D& out_pos);
|
Vector2D& out_pos);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
a8::TimerAttacher timer_attacher_;
|
||||||
int elapsed_time_ = 0;
|
int elapsed_time_ = 0;
|
||||||
int alive_count_ = 0;
|
int alive_count_ = 0;
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
room->map_meta = MetaMgr::Instance()->GetMap(1001);
|
room->map_meta = MetaMgr::Instance()->GetMap(1001);
|
||||||
room->ShuaAndroid();
|
room->Initialize();
|
||||||
room_hash_[room->room_uuid] = room;
|
room_hash_[room->room_uuid] = room;
|
||||||
}
|
}
|
||||||
Player* hum = PlayerMgr::Instance()->CreatePlayerByCMJoin(hdr.socket_handle, msg);
|
Player* hum = PlayerMgr::Instance()->CreatePlayerByCMJoin(hdr.socket_handle, msg);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user