我自己做了一个RPG游戏,已经开始迷惑我了。
在游戏的战斗部分,我使用(很可能)一个非常糟糕的系统来记录攻击时敌人受到的伤害。
int healthStatPlayer = 1;
Double damageTaken = 0.0;
Double maxHealth = (healthStatPlayer * 100.0);
Double playerHealth = (maxHealth - damageTaken);
...
Double attackDamageEnemy (attackStatEnemy * damageMultiplierEnemy);
...
{
if (actionCommand.equals("Attack"))
{
System.out.println("You dealt " + attackDamage + " damage to the enemy.");
damageTakenEnemy = (damageTakenEnemy + attackDamage);
//The above line is where the problem is, it's wrong - both with regards to code and to mathematics - because I don't know how to make it right
System.out.println("The enemy has " + enemyHealth + " health
left.");
}
}
我设置好了,以便敌人目前的健康状况是最大健康减去任何伤害。这意味着,为了能够改变当前的健康状况,我必须将玩家的攻击伤害值加到敌人所受到的伤害上。"
我只是希望能够将attackDamage的数值(在本例中为22.5)添加到damageTakenEnemy的值(最初为0,因为所有敌人都以max health开头)。
答案 0 :(得分:1)
您的attackDamageEnemy
变量缺少=并且您需要确保将enemyHealth
设置为enemyHealth - damageTakenEnemy
否则变量将永远不会受到您的伤害值的影响。
答案 1 :(得分:0)
只需使用加号运算符。
所以它是myVariable + myOtherVariable
,你也可以将它存储在像myStoreVar = myVar + myOtherVar
这样的变量中。
如果您想使用myStoreVar += myVar
来增加变量,只需加myVar
到myStoreVar
。
在您的情况下,答案为damageTakenEnemy += attackDamage
,与damageTakenEnemy = damageTakenEnemy + attackDamage
相同。您可以清楚地看到这里使用哪个,较短的一个。
您还有像 - ,*,/和%。
这样的运算符