我的项目有几个类: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);
希望这可以帮助。