2016-06-27 3 views
-1

System.NullReferenceException был необработанное ОШИБКА

int danoAoInimigo = GeradorDeNumeroAleatorio.NumeroEntre(0, 10); 
 
int danoAoJogador = GeradorDeNumeroAleatorio.NumeroEntre(0, 10); 
 
Console.WriteLine(">>PRESSIONE QUALQUER TECLA<<"); 
 
Console.ReadKey(); 
 
Console.WriteLine("Você causou: " + danoAoInimigo + " de dano ao" _jogador.LocalAtual.InimigoVivendoAqui.Nome + " !! "); 
 

 
_jogador.LocalAtual.InimigoVivendoAqui.VidaAtual = (_jogador.LocalAtual.InimigoVivendoAqui.VidaAtual) - danoAoInimigo; 
 

 

 
Console.WriteLine("O inimigo tem: " + _jogador.LocalAtual.InimigoVivendoAqui.VidaAtual + " de vida."); 
 
if (_jogador.LocalAtual.InimigoVivendoAqui.VidaAtual <= 0) 
 
{ 
 
    Console.WriteLine("Você matou o inimigo."); 
 
    Console.WriteLine(">>PRESSIONE QUALQUER TECLA<<"); 
 
    Console.ReadKey(); 
 
}

В основном Что я здесь делаю это простая «боевая система» для моего текста игры. Он начинается с объявления двух переменных, чтобы удержать повреждение, которое пайер будет иметь для монстра, и ущерб, нанесенный монстру игроку игроку. И затем я сделал сообщение пользователю, потому что он знает, сколько урона он наносит. И затем я заставил монстра потерять жизнь с некоторыми классами, которые я использую, и после того, как я показываю текущую жизнь монстра для пользователя. И, наконец, если здоровье монстра меньше или равно 0, он умирает.

Проблема заключается в следующем: каждый раз, когда я запускаю код и получаю в этой части игры, визуальная студия дает мне сообщение в маленьком окне, в котором говорится, что «Исправление System.NullReferenceException было необработанным». Но у меня уже есть еще две части кода до этого, где у меня такие же строки, и он никогда не показывал мне эту проблему, и она отлично работает. Так может кто-нибудь помочь мне с этим? Я действительно не знаю, что делать.

+0

С вашим опубликованным кодом я не могу указать, где должна быть ошибка. Можете ли вы отправить исключение и строку, вызывающую эту ошибку? – lokusking

+0

Конечно! Я ничего не знаю об исключении, но строка - это тот, где я показываю пользователю сумму ущерба, которую он наносит »Console.WriteLine (« Você causou: »+ danoAoInimigo +« de dano ao »_jogador.LocalAtual.InimigoVivendoAqui. Nome + "!!") "; –

+0

извините за строки и имена переменных. Я не из США, поэтому я написал такие вещи на португальском языке. –

ответ

0

Я удивлен, что вы даже можете скомпилировать!

Вы пропускаете + здесь

Console.WriteLine("Você causou: " + danoAoInimigo + " de dano ao" _jogador.LocalAtual.InimigoVivendoAqui.Nome + " !! "); 

Измените его

Console.WriteLine("Você causou: " + danoAoInimigo + " de dano ao" + _jogador.LocalAtual.InimigoVivendoAqui.Nome + " !! "); 

EDIT:

В этом случае, вероятно, ваш _jogador.LocalAtual.InimigoVivendoAqui.Nome является недействительным. Обязательно установите эту переменную как минимум на ""

+0

Нет, это не проблема, я просто пропустил ее, когда передавал код в вопрос. Сожалею. –

Смежные вопросы