我的项目中有几个类: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 animation = new Animation();
Console.WriteLine(animation.currentFrameHit);
但是我得到的是null,但是在主类Game1中,我使用相同的代码接收到正确的值。
答案 0 :(得分:0)
问题是您正在制作new Animation()
而未将其分配给任何内容。因此它将继续返回其默认值。
到目前为止,有关该数字应该多少的信息还不够。您是否在Enemy类中具有Animation()类,还是在Animation()中找到了敌人类?
答案 1 :(得分:0)
您需要引用现有的动画值。
在您的欲望类(这里是Game1)中创建一个实例,不要忘记将其公开。
public static Animation animationGame1 = new Animation();
然后在第二堂课中
在LoadContent()中:将其引用到Game1的变量:
Animation animationNewClass = Game1.animationGame1;
在Update()中:做您想实现的目标:
Console.WriteLine(animationNewClass.currentFrameHit);
希望这会有所帮助。