我的代码序列出了问题......
在这里。
switch (j) {
case 0:
enemy.setNewLife(j);
break;
case 1:
enemy.setNewLife(j);
break;
case 2:
enemy.setNewLife(j);
break;
}
switch (n) {
case 0:
player.setGun1();
enemy[j] =
break;
case 1:
player.setGun2();
break;
}
因此,敌人的生命是10。
然后枪的力量有4个
enemyshipLife - = gunpower
第一枪敌人生命= 6; boolean dead = false;
第二枪敌人生命= 2; boolean dead = false;
第三枪敌人生命值= -2; boolean dead = true;
我的枪不会得分......因为我的代码执行了setNewLife ...因此将布尔值更改为true ........
我尝试交换开关(n)的位置和if(enemyLife [j]< = 0&& dead [j] == false)...但我的枪仍然没有获得积分......如果枪的功率= 5 ......那么枪就会得到正确的点......
任何想法?
我只是想...为什么我的枪2得到了重点。如果原因是因为首先执行了setNewLife ..那么我的gun2也不会得到积分???现在这变得更奇怪了......
答案 0 :(得分:0)
您在理解OO时遇到了一些严重问题。您将变量放在数组中,而将一些变量放在对象中。你应该把所有东西放在物体里面(例如敌人,枪,玩家)。
以例如:
{
somekey1: "someval1",
somekey2: "someval2",
mystringkey1: "someval",
mystringkey2: "someval"
}
和
enemy1.setNewLife(enemyLife[j]);
因为enemy1(Object),enemyLife []和dead [](Array)显然是相关的,你应该将它们放在同一个地方:
if (enemyLife[j] <= 0 && dead[j] == false)
然后你可以在Enemy-s数组中访问它们。
public class Enemy {
protected int lifeScore;
protected boolean dead;
protected in position;
//.. add constructor, getters
}