Я разрабатываю игру в LibGDX, и у меня есть статический int с именем TILE_ID, который назначается каждой плитке каждый раз, когда плитка создается, например:
{loop in Level.class}
Tile t = null;
switch (material) {
case HOME: {
t = new Home(x, y);
break;
}
case WALL_IRON:
case WALL_BRICK: {
t = new Tile(x, y, material, type);
break;
}
}
if (t != null) {
if (t instanceof Home) {
this.home = t;
}
t.tileID = TILE_ID++;
tileArray.add(t);
}
{loop-end in Level.class}
Итак, когда я начинаю новую игру, первый экземпляр говорит:
private final Listener clientListener = new Listener() {
@Override
public void connected(Connection connection) {
PacketEntity p = (PacketEntity) Packet.createPacket(
PacketEntity.class, Packet.TYPE.CONNECTED);
p.name = pTank.getName();
connection.sendTCP(p);
System.out.println("MAX TILES: " + Level.TILE_ID);
System.out.println("connected to server!");
}
Результат:
:desktop:run
new manager
disposed main menu!
Initializing local server...
Client connected! ID# 1
MAX TILES: 76
connected to server!
Затем я запускаю второй экземпляр, подключаюсь к локальному серверу и вывожу:
:desktop:run
new manager
disposed main menu!
A server is already running on localhost. Trying to connect....
MAX TILES: 152
connected to server!
Я не понимаю, почему это происходит. Если я подключаю третьего клиента и так далее, максимальное количество плиток всегда равно 152.
Единственное место, где tileid увеличивается, находится внутри класса Level.class, который является локальным для каждого игрока (не отправляется по сети).
Может ли кто-нибудь помочь мне с этим?
152 = 2 * 76
), если запущен второй экземпляр. - person dpr   schedule 13.07.2016final
статических полей. - person Tenfour04   schedule 13.07.2016