Я разрабатываю игру в LibGDX и у меня есть статический Int имя TILE_ID, который присваивается каждая плитка каждый раз плитка создается, как это:Статическая INT не одинакова для различных процессов
{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!
И тогда я выполните второй экземпляр, подключитесь к серверу localhost, а выход:
:desktop:run
new manager
disposed main menu!
A server is already running on localhost. Trying to connect....
MAX TILES: 152
connected to server!
Я не понимаю, почему это происходит. Если я подключу третьего клиента и т. Д., Максимальные плитки всегда равны 152.
Единственное место, в котором растет плитка, находится внутри уровня Level.class, который является локальным для каждого игрока (не отправляется по сети).
Может ли кто-нибудь помочь мне с этим?
Вы пытались отладить код? Из (довольно редкой) информации, приведенной, похоже, что «Level-Creation-Loop» может выполняться дважды ('152 = 2 * 76'), если запускается второй экземпляр. – dpr
Это было немного странно, потому что все имена полей шапки обычно используются только для статических полей «final». – Tenfour04
Спасибо. Правильный ответ был dpr. У меня была ошибка в коде, что новый экземпляр сервера будет создан, даже если вы подключаетесь к другому серверу. – Jh62