つまり、コピペです。
other.cpp
void GetKeyInput( int *KeyBuf ){
char damy[256];
GetHitKeyStateAll( damy ) ;
for( int i=0 ; i<256 ; i++ ){
if( damy[i] == 1 )
KeyBuf[i]++;
else
KeyBuf[i] = 0;
}
}
この関数で取得したキーボードの押下時間というのは、さまざまな関数、さまざまなソースファイルから呼び出されることになります。そこで、キーボードの押下時間を保持した変数をグローバル変数?として使いたいと思います。マクロ定義?をうまく用いると変数の宣言と外部変数の宣言をきれいに書くことが出来るのですが、解説が面倒くさいのでここではマクロ定義を用いない方法をとります(キリッ
ソースフォルダに今までと同じように「global」ソースファイルを『sorce』に追加してください。
ヘッダーフォルダにも「global」ヘッダーファイルを『sorce』に追加してください。
ヘッダーフォルダにも「global」ヘッダーファイルを『sorce』に追加してください。
以下のように書き足してください。
global.cpp
// グローバル変数の実体宣言 int Key[256];
global.h
#ifndef _GLOBAL_H_ #define _GLOBAL_H_ extern int Key[256]; #endif
main.h
... #include"DxLib.h" #include"global.h" ...
これで、全ての関数、ソースファイルでグローバル変数『Key』の値を見ることが出来るようになりました。
MainLoop関数とメイン関数を書き換え、GetKeyInput関数を呼び出すようにします。
MainLoop関数とメイン関数を書き換え、GetKeyInput関数を呼び出すようにします。
main.cpp
#include"main.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);
if(DxLib_Init()==-1)
return 1;
SetDrawScreen(DX_SCREEN_BACK);
MainLoop();
DxLib_End();
return 0;
}
void MainLoop(){
while(1){
if( ProcessMessage() != 0 || CheckHitKey( KEY_INPUT_ESCAPE ) != 0 )
break;
ClearDrawScreen();
GetKeyInput( Key );
ScreenFlip();
}
}
この書き換えにより文字すら表示されなくなりました。作成が実感できませんね。