我对C#和一般编程都很陌生,我正在尝试制作一个基于文本的RPG来学习编程技巧。我希望有一个按钮,如F5,可以在游戏中的任何一点用来显示玩家统计数据。起初我想过使用while循环来允许这个,但后来我不知道如何在代码中回到故事的同一部分。相反,我想到只是将所有统计信息打印到文本文档中,但这仍然需要按钮按下整个代码。我真的不知道要包含哪些代码,因为我不知道从哪里开始,这更像是一个逻辑问题。
答案 0 :(得分:0)
您正在寻找的是并发线程检查输入。
一个非常简单的例子就是:
public class Program
{
static void Main(string[] args)
{
ThreadStart ts = new ThreadStart(ReadKey);
Thread t = new Thread(ts);
t.Start();
while(true)
{
Console.WriteLine(DateTime.Now);
// Simulate some processing
Thread.Sleep(1000);
}
}
static void ReadKey()
{
while(true)
{
if (Console.KeyAvailable)
{
Console.WriteLine("Pressed!");
Console.ReadKey(true); // Flush the input stream without showing the key on screen.
}
}
}
}
这里发生的是我们正在创建一个新的Thread,它正在检查用户输入,使得两个线程都不相互依赖。
请注意concurrent programming是一个非常复杂的主题,容易出现多种错误,其中大多数都很难做到诊断。如果您只是学习如何编程,我建议您首先关注基础知识。最终,您将获得更高级的主题。
另请注意,我在此代码中未使用某些best practices。
除此之外,在学习编码的同时主动开发实际的东西也很棒!坚持下去,不要忘记在阅读时阅读一些书籍或值得信赖的在线资源!