我正在做一个使用gamestates的单游戏项目,我正在进行重构。
我有从父类state.cs继承抽象方法的状态类,例如MainGameState: State.
在每个单独的状态类中,我都有重复的代码,我试图将其捆绑到我的state.cs类中,但我似乎无法用state. methodname调用它。
我肯定我错过了一些明显的东西,但我需要帮助,提前感谢
下面的代码
State.cs
public abstract class State
{
/*
[Description]
Abstract class for menu state methods to be used in GameWorld.
*/
private bool isInitialized;
private bool isMenu = true;
public bool IsMenu { get => isMenu; set => isMenu = value; }
public abstract void Initialize();
public abstract void LoadContent();
public abstract void Draw(GameTime gameTime, SpriteBatch spriteBatch);
public abstract void Update(GameTime gameTime);
public void InitializeCheck()
{
// checking if Initialize() has run if it has then skip
if (!isInitialized)
{
Initialize();
}
}
}
我想要调用的示例
MainGameState.cs
public class MainGameState : State
{
public override void Update(GameTime gameTime)
{
State.InitializeCheck();
}
}
@Chetan的评论解决了这个问题:
你不需要做
State InitializeCheck();
。只需用InitializeCheck();
调用该方法。