私は現在、c# でローグライクに取り組んでいます。世界、プレーヤーなどはコンソール内でレンダリングされます。しかし、コンソールに変更が多すぎると、遅れます。これを回避するために、プレーヤーが押しているキーが押されなくなるまでプログラムを待機させようとしています。誰でもこれを作る方法について考えがありますか? 悪い、のようなものがないことConsole.ReadKeyUp()
。
while(Console.KeyAvailable){
}
動作しないようです...
ここにちょっとしたコードがあります:
public void move(){
if(!MainClass.loading){
switch(Console.ReadKey().Key){
case ConsoleKey.NumPad8:
//walk up
break;
case ConsoleKey.NumPad4:
//walk left
break;
case ConsoleKey.NumPad6:
//walk right
break;
case ConsoleKey.NumPad2:
//walk down
break;
case ConsoleKey.NumPad7:
//walk left up
break;
case ConsoleKey.NumPad9:
//walk right up
break;
case ConsoleKey.NumPad1:
//walk left down
break;
case ConsoleKey.NumPad3:
//walk right down
break;
case ConsoleKey.NumPad5:
//eat
break;
}
}
}
そして、これがどのように見えるかです: