我正在做这样的事情: 当你点击按钮时,它会在 1-6 中掷一个骰子,它会从你的对手的 hp 中提取它。我写了一个代码,但它从对手的第一个 hp 中提取数字。HP 必须在每次滚动中改变,它必须小于起始 hp。 这是我的代码:
public static final Random RANDOM1 = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dosto = 20;
düsmann = 20;
dostt = (TextView) findViewById(R.id.dost);
düsman = (TextView) findViewById(R.id.rakip);
saldir = (Button) findViewById(R.id.a);
saldirr = (TextView) findViewById(R.id.textView);
dostt.setText(dosto + "");
düsman.setText(düsmann + "");
saldir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
randomD();
}
});
}
public void randomD() {
int sayi = RANDOM1.nextInt(6) + 1;
switch (sayi) {
case 1:
saldirr.setText(1 + " hasar");
düsman.setText(düsmann-1 + "");
break;
case 2:
saldirr.setText(2 + " hasar");
düsman.setText(düsmann-2 + "");
break;
case 3:
saldirr.setText(3 + " hasar");
düsman.setText(düsmann-3 + "");
break;
case 4:
saldirr.setText(4 + " hasar");
düsman.setText(düsmann-4 + "");
break;
case 5:
saldirr.setText(5 + " hasar");
düsman.setText(düsmann-5 + "");
break;
case 6:
saldirr.setText(6 + " hasar");
düsman.setText(düsmann-6 + "");
break;
}
}
最佳答案
您忘记更新您的 düsmann
变量,所以在案例 1 的开关示例中对您的所有案例执行类似的操作:
case 1:
düsmann = düsmann - 1;
düsman.setText(düsmann);
break;
还可以使用一种方法来限制一些代码重复
private void subtractFromDüsman(int sub){
düsmann = düsmann - sub;
düsman.setText(düsmann);
}
然后从你的案例中调用它
case 2 :
subtractFromDüsman(2);
break;
关于java - 骰子滚动战斗系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49610018/