gpt4 book ai didi

c# - 使用一个类来存储游戏数据,最佳实践?

转载 作者:行者123 更新时间:2023-12-02 22:31:31 25 4
gpt4 key购买 nike

我使用的是 Visual C# 2010 Express。我正在玩游戏,遇到了一个小的新手问题。问题是,我想我们正在处理最佳实践类型的情况,而我提供的几本初学者书籍都没有真正帮助过它,所以我希望你们能。

所以,我有两种形式,一种是闪屏/启动形式,另一种是主游戏窗口。我创建了一个包含所有世界数据的类,当用户在第一个屏幕中点击“新游戏”时,将生成该类的一个新实例并填充数据。

到目前为止一切顺利。

newgame 按钮除了创建世界实异常(exception),还会打开主游戏窗口。问题是,在主游戏窗口中,当我尝试使用 gameworld 实例的属性时,它说它在此上下文中不存在。

所以,如果我做对了,创建的实例只存在于第一个表单类中……对吗?

因此,如果我想移动整个数据,我应该实际序列化并保存世界级实例数据,然后以第二种形式加载它吗?或者我应该如何处理这个问题。

我知道这是一个非常新的问题,我很可能会破解它来工作,但问题是 - 我真的觉得我必须理解我所做的一切。

提前致谢!

最佳答案

您需要在您的游戏表单上创建一个构造函数,它接受您的世界类的实例并将其分配给相同类型的字段 - 游戏表单方法可以访问该字段。

World world;

// constructor
public GameForm (World world)
{
this.world = world;
}

// Can now use `world` in all `GameForm` methods

您可以使用 property injection 而不是构造函数注入(inject)(如我在示例中所示) ,虽然我更喜欢前者(倾向于确保正确的初始化 - 尽管您可能想要检查传入的 null)。

关于c# - 使用一个类来存储游戏数据,最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com