2016-12-16 5 views
-6

Почему «травмированное» значение отличается?Что случилось с моими кодами C#?

public int Health = 500; 
public int Injured; 

    public int AtkDamage() 
    { 
     Random AtkRnd = new Random(); 
     return Injured = AtkRnd.Next(0, 100); 
    } 


    public int RemainHP() 
    { 
     return Health -= Injured; 
    } 

Почему «Раненный» в «RemainHP» отличается от «Раненый» в «AtkDamage», они находятся в одних и тех же class.Thanks очень много. (Извините за плохой английский)

+0

, потому что (если они разные) 'RemainHP()' в настоящее время выполняется до 'AtkDamage()'. –

+0

Вы хотите «RemainHP == Здоровье - Поврежденный», правильно? Таким образом ('Health - = Injured') вы атакуете бедного существа каждый раз, когда вызывается« RemainHP() »... – vojta

ответ

0

Удалить = в RemainHP. Сейчас это эквивалентно

Health = Health - Injured; 
return Health; 

Вы хотите

return Health - Injured 
+0

Итак, как изменить значение« здоровье »после первого попадания? –

+0

Зависит от того, как выглядит ваш код, но вы можете просто сделать «Здоровье - = AtkDamage()» при ударе существа. – Mats391