- 我有對象的集合與位置(X,Y)
- 這些對象隨機移動
- 可能有成千上萬的得到它的距離內對象的列表
在任何時刻我將不得不對象從一個位置POS(恆定)半徑RAD名單。如何從在C給定位置++
編輯 - 上下文:這是一個遊戲服務器,它將(虛構)擁有數千名玩家。當玩家移動/ [製作動作]時,我想將更新發送給半徑內的其他玩家。
最簡單的方式,每次我需要的資源列表:
near_objects;
foreach(objects o) {
if(o.distance(POS) < RAD)
near_objects.add(o)
}
我想有更好/更快的方法,但我不知道要搜索什麼。
不同方法的效率取決於您擁有多少個對象,以及他們移動的頻率與其中有多少位於範圍內(平均)。例如,如果他們不經常移動,你可以在每次移動後檢查,如果他們在範圍內 – aryjczyk
這是一個遊戲服務器,這將(虛構)有數以千計的球員。當玩家移動/ [製作動作]時,我想將更新發送給半徑中的其他玩家。 – Malandrain
我會將此信息添加到您的問題中,這會產生很大的差異 – aryjczyk