皆さん初めまして。
VBからC++に乗り換えて現在奮闘中のTOMと申します。
今、コンソールのゲームをちまちま作っているのですが
キー入力を「Cin >>」で行った後、いちいちリターンキーを
押さないといけないので困ってます。
ゲーム中に「U」や「D」を押すとすぐに処理を実行したいのですが、
その後にリターンを押して決定させないといけないので
ゲーム進行がスムーズに行きません(^^;
なにか良い方法がありましたら教えて下さいませ。
方法はC++のみなのかWin32APIなのかで大きく違いますがC++のみの方はわかりません。
Win32APIならGetAsyncKeyStateで入力を見ればOKです。
えっとC++のみの方なんですが確かですがかなり前にQUAKEのソースコードを
見たときの感じではアセンブラだったような気がします(←うろ覚えなので信じないように)。
_getch()って関数、使えませんかね。
ヘッダーは、conio.hです。
みなさんご指導ありがとうございました(^^
_getch()で見事解決できました。
GetAsyncKeyStateはVBの時は使ってましたが、
コンソールになるとどうも上手く使えないのです(^^;
例えば・・・
while(GetAsyncKeyState(VK_SHIFT)>=0)
のような条件を付けて「シフトが押されたらループ終了」
という風にして実行しても、シフトを押してるのに一向に終了しません。
でも実行した後、実行してるウィンドウを動かすとキーが検知されて
ループが終了するんです。
上の例で言うとシフトを押しながらウィンドウを動かすとループが終了する
と言った感じです。
_getch()で解決できたので一応は一件落着なのですが(^^;
どうしたものでしょうか・・・