Как создать метод из другого класса при нажатии кнопки? - PullRequest
0 голосов
/ 26 апреля 2019

Я создал метод, который должен "наносить двойной урон" тем, кто является огнем, и использую этот метод, когда я нажимаю кнопку.

Это мой школьный проект - простая игра, похожая на покемонов, с которой у меня есть несколько проблем.

Я использую Android Studio.

Конструктор для атак

public Attacks(int damage , int accuracy , int critChance , boolean water , boolean fire) {
        this.accuracy = accuracy;
        this.critChance = critChance;
        this.damage = damage;
        this.fire = fire;
        this.water = water;
    }
    public boolean isFire(){
        return fire;
    }
    public int getDamage(){
        return damage;

    }

Конструктор для персонажей

public Characters(int health, boolean fire) {
        this.health = health;
        this.fire = fire;
        }

    public boolean characterIsFire()
    {
        return fire;
    }

    public int getHealth() {
        return health;
    }

Что произойдет, когда я нажму кнопку:

Это другой класс.Это в классе «Fight View», здесь макет соответствует коду.


attackOne.setOnClickListener(new View.OnClickListener() {

@Override

 public void onClick(View v)
 {
if(fredrikVald)
{

spelare.setText("Fredrik Used Fireball");
 }

 if(jonteVald)
{

spelare.setText("Jonte Used Waterball");
                }
            }
        }); 

Метод атаки.

Это в классе атаки.

 public void attack(Attacks a)
    {
        Characters attacked = characters.get((player_in_turn + 1) % NR_OF_CHARACTERS);
        if(attacked.characterIsFire()&& !a.isFire())
        {
            attacked.health = attacked.getHealth() - (a.getDamage() * 2);
        }
        else
        {
            attacked.health = attacked.health - a.getDamage();
        }
    }

Я хочу, чтобы метод атаки запускался при нажатии кнопки.Так что здоровье любого персонажа будет ухудшаться при любой атаке, даже если это огонь или нет.

1 Ответ

0 голосов
/ 26 апреля 2019

Вам нужен экземпляр вашего класса Attack, предположим, что мы называем это "att".Тогда вы можете просто добавить

Attacks fireball = new Attacks(/*whatever values you want*/);
att.attack(fireball);

к

if(fredrikVald)
{
//add code here
spelare.setText("Fredrik Used Fireball");
}

и подобный код к части водяного шара

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...