Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
koma
記事: 9
登録日時: 10年前

Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#1

投稿記事 by koma » 10年前

何度も申し訳ありません
enterかspaceを押すと次の処理へ行くにはどうしたらいいでしょうか?

VC++ Dxlib win8

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#2

投稿記事 by みけCAT » 10年前

抽象的な答えにくい質問だと思いますが、enterかspaceを押すと次の処理へ行くプログラムを組み、コンパイルし、実行すればいいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
namachan10777
記事: 32
登録日時: 10年前
住所: 四国
連絡を取る:

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#3

投稿記事 by namachan10777 » 10年前

よくわかりませんが、DXライブラリの関数(CheckHitKeyとかGetHitKeyStateAllとか)でキーの押下状態を監視して、エンター(KEY_INPUT_RETURN)かスペース(KEY_INPUT_SPACE(多分))が押されると次の処理を行うということでしょうか。
処理を関数にまとめてswitch文で切り替えるとかになると思います。
Javaですが、参考になるとしたらこのサイトの後半とかでしょうかhttp://www.gamecradle.net/document/main ... ction.html
D言語!D言語!

koma
記事: 9
登録日時: 10年前

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#4

投稿記事 by koma » 10年前

while( CheckHitKey( KEY_INPUT_RETURN );
こうすればいいのでしょうか?
こうすると;に")"が必要ですとでるのですがどうしたらいいのでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#5

投稿記事 by みけCAT » 10年前

koma さんが書きました:while( CheckHitKey( KEY_INPUT_RETURN );
こうすればいいのでしょうか?
こうすると;に")"が必要ですとでるのですがどうしたらいいのでしょうか?
とりあえず

コード:

while( CheckHitKey( KEY_INPUT_RETURN ));
というように;の前に)を補えばコンパイルは通るはずですが、
そんなコードは実行しても意味がありません。削除し、きちんと状態遷移を行うプログラムを書いてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

koma
記事: 9
登録日時: 10年前

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#6

投稿記事 by koma » 10年前

いろんなサイトを見てもうまくいかないのですがどうしたらいいでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#7

投稿記事 by みけCAT » 10年前

koma さんが書きました:いろんなサイトを見てもうまくいかないのですがどうしたらいいでしょうか?
サイトを見るだけではなく、適切なコードを書き、コンパイルし、実行する必要があります。
今書いてあるコードを見せていただけると、改善点を教えられるかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

koma
記事: 9
登録日時: 10年前

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#8

投稿記事 by koma » 10年前

コード:

		SetDrawScreen( DX_SCREEN_BACK ); //裏処理開始
        
		int Handle;  //データハンドル格納用変数
        Handle = LoadGraph( "images/Lotop.png" ); // 画像をロード
        DrawGraph( 0, 0, Handle, TRUE ); // データハンドルを使って画像を描画
		DrawFormatString( 380, 350,GetColor(0,0,0), "Press the Enter button"); //文字表示
		ScreenFlip(); //裏画面を表画面に反映

		WaitKey(); //キー入力待ち
		DxLib_End();   // DXライブラリ終了処理
        return 0;
} 
こんな感じです。
何度もすみません  上は少し省略してます

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#9

投稿記事 by みけCAT » 10年前

例えばこんな感じでしょうか?

コード:

#include <DxLib.h>

void WaitEnter(void){
	// Enterが押されるまで待つ
	while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_RETURN ) == 0);
	// Enterが離されるまで待つ
	while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_RETURN ) != 0);
}

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
	if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() != 0) return -1;

	SetDrawScreen( DX_SCREEN_BACK ); //裏処理開始

	int Handle;  //データハンドル格納用変数
	Handle = LoadGraph( "images/Lotop.png" ); // 画像をロード
	DrawGraph( 0, 0, Handle, TRUE ); // データハンドルを使って画像を描画
	DrawFormatString( 380, 350,GetColor(0,0,0), "Press the Enter button"); //文字表示
	ScreenFlip(); //裏画面を表画面に反映

	WaitEnter();

	ClearDrawScreen();
	DrawFormatString( 380, 350,GetColor(255,255,255), "次の処理"); //文字表示
	ScreenFlip(); //裏画面を表画面に反映

	WaitKey(); //キー入力待ち
	DxLib_End();   // DXライブラリ終了処理
	return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

koma
記事: 9
登録日時: 10年前

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#10

投稿記事 by koma » 10年前

コード:

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode( TRUE ); // ウィンドウモード
		SetGraphMode(1024, 768, 32); //ウィンドウサイズ変更

		DxLib_Init();   // DXライブラリ初期化処理
		SetDrawScreen( DX_SCREEN_BACK ); //裏処理開始
        
		int Handle;  //データハンドル格納用変数
        Handle = LoadGraph( "images/Lotop.png" ); // 画像をロード
        DrawGraph( 0, 0, Handle, TRUE ); // データハンドルを使って画像を描画
		DrawFormatString( 380, 350,GetColor(0,0,0), "Press the Enter button"); //文字表示
		ScreenFlip(); //裏画面を表画面に反映

void WaitEnter(void);{  // Enterが押されるまで待つ
        while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_RETURN ) == 0);// Enterが離されるまで待つ
        while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_RETURN ) != 0);
}
		DxLib_End();   // DXライブラリ終了処理
        return 0;
} 
これでうまくいきました。ありがとうございます

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#11

投稿記事 by みけCAT » 10年前

koma さんが書きました:

コード:

void WaitEnter(void);{  // Enterが押されるまで待つ
        while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_RETURN ) == 0);// Enterが離されるまで待つ
        while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_RETURN ) != 0);
}
なるほど。ぱっと見意味がわかりませんでしたが、
ダミーのプロトタイプ宣言をした後、普通のブロックに処理を入れているわけですね。
koma さんが書きました:これでうまくいきました。ありがとうございます
解決でしたら、解決チェックをお願いします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

koma
記事: 9
登録日時: 10年前

Re: Enterかspaceを押すと次の処理へ VC++,Dxlib,win8

#12

投稿記事 by koma » 10年前

解決忘れてました

閉鎖

“C言語何でも質問掲示板” へ戻る