2012-03-20 8 views
2

は私がかが一緒にCursorTopをCursorLeft SetCursorPositionとコンソール内の特定のポイントにカーソルを設定する方法を知っています。それは問題じゃない。C#コンソールアプリケーションでカーソルの文字を取得するにはどうすればよいですか?

でも、その点の価値はどのように得られますか? のようなものはありませんか??だから私はその位置でキャラクターを手に入れることができますか?おそらく次のようなものがあります。

char c = Console.GetCharAtCursor(); 

いいえ、運がいいですか?あなただけのそれらを読むことができるように

+0

取得しようとしている価値について明確にしてください。あなたが指している文字列や数字の値やポインタの座標を取得しようとしていますか? – mservidio

+0

投稿が編集されています。もう一度それを読むことができますか?それ以外の方法があれば、それを共有してください。 –

答えて

1

「CursorLeft」と「CursorTopは」ゲッターを持っている:var cleft = Console.CursorLeft

4

は私の知る限り、あなたは、2次元のバッファとして全体のコンソールバッファを読んで、カーソルのXを使用する必要があり、Yは座標としてそのバッファへのインデックス参照:

[DllImport("kernel32.dll", CharSet=CharSet.Unicode, SetLastError=true)] 
public static extern bool GetConsoleScreenBufferInfo(
    IntPtr consoleHandle, 
    out CONSOLE_SCREEN_BUFFER_INFO consoleScreenBufferInfo); 

あなたはここでバッファ構造について読むことができます。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682093(v=vs.85).aspx

更新:

あなたがゲームの書き込み用コンソールAPIを使用してに興味があるなら、誰かが書きましたスペースインベーダー(実際にはPowerShell)が、すべてのAPIはスクリプトではなく管理されたコードです。彼はスプライト/パスルーチンなどを持っています - ソースは上にありますhttp://ps1.soapyfrog.com/2007/08/26/grrr-source-code-including-invaders/

+0

しかし、私がコンソールゲームをプログラミングしているなら、それは速く/有益でしょうか? –

+3

@UfukSarpSelçok:コンソールゲームをプログラミングしている場合は、2Dバッファーに独自のスクリーンバッファのコピーを保存することをお勧めします。 – Heinzi

+0

@UfukSarpSelçok私はゲームのもの(スプライト、パスなど)用の良いコンソールライブラリへのリンクを投稿しました – x0n

0

実際には、入力ストリームを読みたいのですか?

Console.ReadKey(); 

などです。

+0

ありがとう、Jodrell。私は必要なものを手に入れました。 –

関連する問題