我正在努力将多人游戏用于我正在制作的RTS游戏。我有一个GameObject类,每个项目(建筑物,单位,树木等)都延伸。此GameObject类包含有关项目的所有信息(名称,运行状况,位置,纹理等)。 ArrayList<GameObject> gameObjects
存储所有项目。
然后我有一个ArrayList<GameObject> selector
,其中包含用户当前选择的项目。假设用户点击了一个坦克,那么这个坦克将被存储在selector
中。如果他然后右键单击某个地方,他就会告诉坦克去鼠标的坐标。我还需要通过将选择器ArrayList和鼠标坐标发送到服务器来告诉所有其他玩家,以便服务器可以将其传递给其他客户端。
现在问题。发送选择器意味着发送大量不必要的数据(例如纹理),因为GameObject类保存了这个信息。而且我还必须为GameObject使用的每个类实现serializable。所以我的问题是,如果我能以某种方式拥有一个ArrayList,它只存储某些指向实际gameObjects ArrayList的指针。因此,当用户选择坦克时,我会在ArrayList gameObjects中存储指向坦克的指针。
我意识到这可能有点令人困惑。希望你明白。