无法从XNA Framework C上的另一个类接收值#

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从XNA Framework C上的另一个类接收值#相关的知识,希望对你有一定的参考价值。

我的项目有几个类:Game1(主类(默认)),动画和敌人:

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类中的变量中获取值?在Enemy类中,我无法从动画中获得此值。我试过了:

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

但是我得到了null,但是在主类Game1中我收到了具有相同代码的正确值。

答案

问题是你制作了一个new Animation()而没有把它分配给任何东西。所以它会继续返回它的默认值。

到目前为止,没有足够的信息说明这个数字应该是多少。你有Enemy Class中的Animation()类,或者你在Animation()中找到敌人类?

另一答案

您需要引用现有的动画值。

在你的欲望类中创建一个实例(这里是Game1)并且不要忘记将其公开。

public static Animation animationGame1 = new Animation();

然后在你的第二堂课:

在LoadContent()中:将它引用到Game1的变量:

Animation animationNewClass = Game1.animationGame1;

在Update()中:做你想要实现的目标:

Console.WriteLine(animationNewClass.currentFrameHit);

希望这可以帮助。

以上是关于无法从XNA Framework C上的另一个类接收值#的主要内容,如果未能解决你的问题,请参考以下文章

WPF 中的 XNA GamePad 输入触发事件

XNA SpriteSheet 不工作

尝试使用 Microsoft.Xna.Framework 将 wma 文件加载为 SoundEffect 时发生 InvalidOperationException

Xna 一次从数组中触发(更新)对象

XNA - 视频和VideoPlayer缺少命名空间?

Microsoft.Xna.Framework 里面的Vector2主要是用于做啥的啊?