-
Notifications
You must be signed in to change notification settings - Fork 63
/
Copy pathProgram.cs
62 lines (46 loc) · 1.87 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Numerics;
namespace AOI
{
class Program
{
static void Main(string[] args)
{
var zone = new AoiZone(.001f, .001f);
var area = new Vector2(3, 3);
// 添加500个玩家。
for (var i = 1; i <= 500; i++) zone.Enter(i, i, i);
// 测试移动。
// while (true)
// {
// Console.WriteLine("1");
// zone.Refresh(new Random().Next(0, 50000), new Random().Next(0, 50000), new Random().Next(0, 50000), area);
// Console.WriteLine("2");
// }
// 刷新key为3的信息。
zone.Refresh(3, area, out var enters);
Console.WriteLine("---------------加入玩家范围的玩家列表--------------");
foreach (var aoiKey in enters)
{
var findEntity = zone[aoiKey];
Console.WriteLine($"X:{findEntity.X.Value} Y:{findEntity.Y.Value}");
}
// 更新key为50的坐标。
var entity = zone.Refresh(3, 20, 20, new Vector2(3, 3), out enters);
Console.WriteLine("---------------离开玩家范围的玩家列表--------------");
foreach (var aoiKey in entity.Leave)
{
var findEntity = zone[aoiKey];
Console.WriteLine($"X:{findEntity.X.Value} Y:{findEntity.Y.Value}");
}
Console.WriteLine("---------------key为3移动后加入玩家范围的玩家列表--------------");
foreach (var aoiKey in enters)
{
var findEntity = zone[aoiKey];
Console.WriteLine($"X:{findEntity.X.Value} Y:{findEntity.Y.Value}");
}
// 离开当前AOI
zone.Exit(50);
}
}
}