2017-08-27 2 views
1

Ich mache ein Konsolenspiel mit C#. Ich möchte mit meinem Programm einen Code-Block ausführen, wenn der Benutzer die Pfeiltasten drückt. Obwohl das ziemlich einfach klingt, habe ich keine Ahnung, wie ich das machen soll, weil ich irgendwie neu in C# bin.Wie verfolge ich Benutzereingaben in der C# -Konsolenanwendung?

PS Ich arbeite an VS für Mac.

EDIT 1: Ich möchte die Benutzereingaben verfolgen, damit andere Aufgaben nicht angehalten werden, wenn das Programm auf eine Benutzereingabe wartet.

Antwort

1

Ihr GameLogic sollte in einem separaten Thread in einer Endlosschleife laufen. Sie können den Überblick behalten, indem Sie Console.ReadKey() in einer while (true) Loop-Endlosschleife auf Ihrem Haupt-Thread anhören. Jedes Mal, wenn eine Taste gedrückt wird, könntest du ein Event werfen, das von deinem anderen Thread behandelt wird.

Um einen neuen Thread zu starten einen Blick auf: How do I run a simple bit of code in a new thread?

Eine saubere aproach eine GameLogicWorker zu schaffen wäre, die ein privates Thema hält (Die sauberste aproach meiner Meinung nach) Diese answere zeigen, wie das zu tun: https://stackoverflow.com/a/8123600/4992212

Aber es gibt mehrere Möglichkeiten. Sie können auch Async verwenden und auf Schlüsselwörter warten, um asynchrone Vorgänge zu erzielen.

+0

Gute Idee! Ich habe nicht an Multithreading gedacht. Aber kannst du mir zeigen, wie man Multithreading in C# macht? –

+0

hat meine Antwort bearbeitet. Der zweite Link bietet ein Beispiel, wie man eine Arbeiterklasse implementiert, die Sie für Ihre GameLogic verwenden können. –

+0

Vielen Dank! Das hat mein Problem perfekt gelöst! Die Website erlaubt mir nicht, Ihre Antwort jetzt zu akzeptieren. Ich werde es ein bisschen später tun. –

Verwandte Themen