C# 使用控制台更改对象变量

C# 使用控制台更改对象变量,c#,input,xna,console,C#,Input,Xna,Console,我不确定其中任何一个的实际术语,我确信有一些术语我只是碰巧没有意识到它们 该应用程序只是一个XNA游戏。我希望能够在不重新编译的情况下更改变量,使用控制台(目前仅使用C#控制台),因为这比使用按键递增和递减更能控制变量 我假设我必须有一个线程不断地等待控制台的输入,但我不确定的是如何改变对象内的变量(如速度、加速度、重力等) 有没有一种快速的方法可以在没有大量案例陈述的情况下做到这一点?如果有人知道任何技术的实际名称/我实际上在寻找什么,我将不胜感激 多谢各位 编辑:对于我实际上在寻找什么,似乎

我不确定其中任何一个的实际术语,我确信有一些术语我只是碰巧没有意识到它们

该应用程序只是一个XNA游戏。我希望能够在不重新编译的情况下更改变量,使用控制台(目前仅使用C#控制台),因为这比使用按键递增和递减更能控制变量

我假设我必须有一个线程不断地等待控制台的输入,但我不确定的是如何改变对象内的变量(如速度、加速度、重力等)

有没有一种快速的方法可以在没有大量案例陈述的情况下做到这一点?如果有人知道任何技术的实际名称/我实际上在寻找什么,我将不胜感激

多谢各位

编辑:对于我实际上在寻找什么,似乎有些困惑。我不需要游戏内控制台,因为我使用AllocConsole()添加了一个常规控制台。我的主要问题是如何使用这个控制台调用特定对象,并在应用程序仍在运行时更改它们的变量


Edit2:通过在线查询“命令控制台”和“开发人员控制台”,我找到了CVAR页面和变体页面。我觉得这两个都是朝着我想要的方向迈出的一步。

编写游戏内控制台系统并不是一件很简单的事情。我建议您首先使用XML或JSON文件进行配置,并将其动态加载到值中。这样一来,您就不必每次更改变量时都重新编译,也不必经历设置游戏内控制台/命令窗口的麻烦。

如果您阅读第一篇文章中的第二篇编辑,您将看到我的研究结果


CVar连接看起来最有希望,但那是14年前的事了。这仍然是最好的答案,但我觉得可能有一种更现代/更好的方法来解决这个问题。

你能更具体一点吗?几乎所有编写的计算机程序所做的都是从人类那里获取输入,并相应地改变变量的内容。我不知道如何才能更具体。我需要能够引用游戏中的一个对象并更改一个值。比如键入“player1.velocity=20.0f”,让玩家在游戏中的速度更改为20.0f。我只是不知道最好的方法是什么。我的主要目标是避免每次我想更改某些值时重新编译。我想我明白了。您需要一个用于测试或调试目的的游戏内控制台,就像在Quake中按tilde(
~
)时得到的一样。一些随意的谷歌搜索出现了。如果您对优雅和图灵不完整输入语言的一些折衷方案感到满意,那么类似的方案也可以。没问题。:)顺便说一句,写下并接受你自己的答案是完全可以的——我不知道该如何表达,你知道什么最有效。谢谢,但整个问题还没有回答。我想知道如何正确地引用对象及其变量。我可能只是浏览一下您链接的控制台代码,看看他们是如何做到的。也许其他人可以过来回答这部分问题。但是,您链接的代码是针对XNA 3.0的。有人很好地转换了它。系统不需要在游戏中。我只想在XNA窗口中快速更改变量。我相信你仍然可以像在控制台应用程序中一样收听C#console。我的想法是用它来听输入。我的问题主要是关于处理输入的最佳方式。