Dixqさん問題4,5の回答
Posted: 2009年1月11日(日) 13:38
4. Zキーが押された瞬間一度だけ「押されました」とprintfDxで表示するプログラムを書いて下さい。(裏画面処理使う)
5. Aキーが押された瞬間一度だけドの音が鳴るプログラムを書いて下さい。(裏画面処理使う)
4
5
これでよろしいのでしょうか?
5. Aキーが押された瞬間一度だけドの音が鳴るプログラムを書いて下さい。(裏画面処理使う)
4
#include "DxLib.h"
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_Z]);//エンター入力カウント
if(Key[KEY_INPUT_Z]==1)//今の瞬間押されたら
printfDx( "押されました" ) ;
ScreenFlip();
}
DxLib_End();
return 0;
}5
#include "DxLib.h"
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int Key[256];
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
int Sound;
Sound = LoadSoundMem("do.ogg");
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
DrawFormatString(0,0,GetColor(255,255,255),"%d",Key[KEY_INPUT_Z]);//エンター入力カウント
if(Key[KEY_INPUT_A]==1)//今の瞬間押されたら
PlaySoundMem(Sound, DX_PLAYTYPE_BACK);
ScreenFlip();
}
DxLib_End();
return 0;
}これでよろしいのでしょうか?