Я создаю простую боевую игру. есть два противостоящих игрока, цель которых - устранить другого; я создал полоски здоровья и тому подобное. Чтобы начать атаку на противника, пользователь нажимает определенную кнопку «атака». Я хочу, чтобы эта кнопка была отключена, если полоса здоровья одного игрока достигла нуля.
http://sstatic.net/stackoverflow/img/Untitled.jpg
Структура моей программы:
основной класс (приложение открытого класса расширяет JFrame) // частные JButtons, JPanels и т. д.
public App () // расположение всех компонентов и зарегистрированных слушателей
основной метод // кадр / с (у меня больше одного кадра в моем основном методе. ха-ха)
Класс слушателя / es // операторы if else (if (e.getSource == xyz))
Класс / классы JPanel, которые рисуют полосы здоровья
---- конец структуры
вот что я сделал до сих пор в классе панели (полный исходный код - это 800-строчный текстовый файл):
class HP2panel extends JPanel {
public void damageTake() {
if (widthHP <= 0) {
damageToMe = 0;
}
else if (widthRage >= 250) {
damageToMe = 175 + (int)(Math.random() * 25);
}
else if (widthHP > 0 && widthRage < 250) {
damageToMe = Math.round(1 + (int)(Math.random() * 15));
}
if (widthHP2 <= 0) {
damageToMe = 0;
}
widthHP2 = widthHP2 - damageToMe;
logtxt.append("\nYour HP: " + widthHP2);
logtxt.append("\nDamage you've taken: " + damageToMe);
repaint();
}
public void healdamageTake() {
if (widthHP2 <= 0) {
Heal = 0;
}
if (widthHP2 >= 250) {
Heal = 0;
}
else {
Heal = (int)(Math.random() * 25);
}
widthHP2 = widthHP2 + Heal;
logtxt.append("\n");
logtxt.append("\nHealed HP: " + Heal);
repaint();
}
public void restartHP2() {
widthHP2 = 250;
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.green);
g.fillRect(0, 0, widthHP2, 16);
}
}
HP2panel - это класс панели, в котором отображается полоса здоровья (fillRect) игрока 2. widthHP, widthRage - это параметры из другого созданного мной класса панели.
Я хочу, чтобы кнопка атаки была отключена, когда widthHP станет равным нулю или меньше. Я работал над операторами if, но это казалось бесполезным.
Я не знаю, собираюсь ли я поместить его в свой класс Listener или где-нибудь еще в моем коде.
x = x - y
и не утруждают себя чтением дальше ... - person Boris the Spider   schedule 12.10.2013button.setEnable(false)
мог легко сделать трюк сif-else
проверкой. - person Sage   schedule 12.10.2013