为什么当我创建一个从另一个GameComponent类派生的类时,游戏类只会更新原始类中的内容?更新

本文关键字:更新 游戏类 原始 派生 创建 一个 为什么 GameComponent 另一个 | 更新日期: 2023-09-27 17:54:55

当我创建我的类ConfigsPC派生自我创建的另一个类Configs时,我无法更新ConfigsPCUpdate方法中的任何内容,但我能够更新ConfigsUpdate方法中的内容。这是我的问题,我不知道我处理这种情况的方式有什么问题,我不能做我想做的事吗?如果我是,有什么可能的方法来解决这个问题?

public class ConfigsPC : Configs
{
    public ConfigsPC(Game game)
        : base(game)
    {
        this.Initialize();
    }
    public override void Update(GameTime gameTime)
    {
        // Example of a value I'm trying to update.
        Game.IsMouseVisible = false;
        base.Update(gameTime);
    }
    public override void Draw(GameTime gameTime)
    {
        base.Draw(gameTime);
    }
}
public class Configs : Microsoft.Xna.Framework.GameComponent
{
    public Configs(Game game)
        : base(game)
    {
    }
    public override void Initialize()
    {
        base.Initialize();
    }
    public override void Update(GameTime gameTime)
    {
        base.Update(gameTime);
    }
}

为什么当我创建一个从另一个GameComponent类派生的类时,游戏类只会更新原始类中的内容?更新

听起来你想让你的Update方法virtual。但是,如果没有看到你的代码,很难更具体。

你是否记得将ConfigsPC注册到你的游戏组件集合中?

public class ConfigsPC : Configs
{
    public ConfigsPC(Game game)
        : base(game)
    {
        this.Initialize();
        game.Components.Add(this); // add this line
    }

它只会对添加到集合中的组件自动调用update。