2012-10-28 5 views
0

Вероятно очень основная проблема Java, но у меня есть две переменные в классе сущностей:статическая переменная Мессинг все вверх

}

Мой игрок и враг класса продлить его, а затем делают прочь два переменные. Как так:

public void draw(Graphics2D g2d) { 
    g2d.drawImage(getPlayerImg(), posX, posY, null); 
    if (showBounds == true) { 
     g2d.draw(getBounds()); 
    } 
} 

Мне нужно, чтобы получить доступ к этим переменным, как это (это в моем классе противника):

public static void moveFemale(){ 
    if(posX <= Player.posX){ 
     //do AI code 
    } 
} 

PosX И Player.posX выдаст ошибку говоря мне нужно изменить модификатор posX в Entity.java для статики. Но когда я изменяю его на статичный, мой рендеринг для класса врагов перестает работать, и враги больше не появляются на экране. Как я мог приступить к созданию переменной, которая позволила мне это сделать:

public static void moveFemale(){ 
    if(posX <= Player.posX){ 
     //do AI code 
    } 
} 

И все-таки отдать своих врагов? Извините за стену текста, и любые ответы помогут много!

+2

Я бы рекомендовал вам прочитать о ключевом слове 'static' и решить, действительно ли вам нужно, чтобы ваши методы были объявлены как' static'. –

+0

Я предполагаю, что это то, что вы ищете: http://stackoverflow.com/questions/6320190/java-extended-static-class-of-a-non-static-class – Nano

ответ

2

Метод moveFemale является статическим, так что нужно знать который женщина двигаться. Либо передайте ссылку на palyer, либо find a may, чтобы сделать методы перемещения нестационарными методами члена игрока.

0

Я думаю, вы должны удалить модификатор static из метода moveFemale

public void moveFemale(){ 
    if(posX <= Player.posX){ 
     //do AI code 
    } 
    } 
+0

Player. posX не должен быть доступен статическим образом, поскольку он не является статичным. –

+0

Ничего себе .... Я чувствую себя невероятно глупо. Однако Player.posX по-прежнему хочет быть статичным. –

+1

Эндрю предлагает хорошую вещь, чтобы передать игрока в качестве параметра для этого метода. Чем вы сможете получить от него позицию игрока. – yatul

Смежные вопросы