gpt4 book ai didi

java - 当我按下按钮时,如何使不同类的方法启动?

转载 作者:行者123 更新时间:2023-12-02 06:15:50 26 4
gpt4 key购买 nike

我创建了一种方法,应该对那些着火的人“造成双重伤害”,并在按下按钮时使用此方法。

这是我的高中项目,是一个简单的类似神奇宝贝的游戏,但我遇到了一些问题。

我正在使用 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;
}

当我按下按钮时会发生什么:

这是在不同的类(class)。这是在“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();
}
}

我希望在按下按钮时启动攻击方法。这样任何角色的生命值都会因任何攻击而降低,无论是否是火。

最佳答案

您需要 Attack 类的一个实例,假设我们称之为“att”。然后你就可以添加

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

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

以及与水球部分类似的代码

关于java - 当我按下按钮时,如何使不同类的方法启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55872679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com