Не удается получить значение из другого класса в XNA Framework C # - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть несколько классов в моем проекте: Game1 (основной класс (по умолчанию)), Animation и Enemy:

public class Animation 
{
      public  int currentFrameHit;
      public Animation ()
      {
      }

      public void Update(GameTime gameTime)
      {
          timeElapsedHit += gameTime.ElapsedGameTime.Milliseconds;
          if (timeElapsedHit > 100)
          {
              timeElapsedHit = 0;
              currentFrameHit = (currentFrameHit + 1) % 9;
          }
       }
}

Как я могу получить значение из переменной в классе Animation?В классе Врага я не могу получить это значение от Анимации.Я попробовал это:

   Animation animation = new Animation();
   Console.WriteLine(animation.currentFrameHit);

Но я получаю нулевое значение, однако в основном классе Game1 я получаю правильные значения с тем же кодом.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Вам нужно сослаться на существующее значение анимации.

Создайте экземпляр в своем классе желаний (здесь это Game1) и не забудьте сделать его общедоступным.

public static Animation animationGame1 = new Animation();

Затем во втором классе:

В LoadContent (): ссылка на переменную Game1:

Animation animationNewClass = Game1.animationGame1;

В Update (): делать то, что вы хотите достичь:

Console.WriteLine(animationNewClass.currentFrameHit);

Надеюсь, это поможет.

0 голосов
/ 25 февраля 2019

Проблема в том, что вы делаете new Animation(), не назначая его ни для чего.поэтому он будет продолжать возвращать значение по умолчанию.

Пока недостаточно информации о том, каким должно быть число.Есть ли у вас класс Animation () внутри класса Enemy или вы находите класс Enemy в классе Animation ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...