グローバル変数を引数にする
Posted: 2011年8月30日(火) 23:01
今、以前に作ったゲームのコードのグローバル変数をすべて
引数にして、グローバル変数をなくそうとしています。
そこで分からないことが出てきました。
分かりやすくサンプルにしてみました。
今まではcounterのようにグローバルで宣言していたものをtimerの
ようにしてみました。
しかし、counterは毎フレーム1増えていくのに、timerは0のままです。
ポインターの使い方が間違っているのでしょうか?
どなたか教えていただけないでしょうか?
DxライブラリーとVC++2008EEを使っています。
引数にして、グローバル変数をなくそうとしています。
そこで分からないことが出てきました。
分かりやすくサンプルにしてみました。
#include "DxLib.h"
int counter;
void game_main(int *timer);
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );
int timer = 0;
// while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
game_main(&timer);
int Color = GetColor(255, 255, 255);
DrawFormatString(20, 20, Color, "timer = %3d", timer);
DrawFormatString(20, 60, Color, "counter = %3d", counter);
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
void game_main(int *timer){
*timer++;
counter++;
}
ようにしてみました。
しかし、counterは毎フレーム1増えていくのに、timerは0のままです。
ポインターの使い方が間違っているのでしょうか?
どなたか教えていただけないでしょうか?
DxライブラリーとVC++2008EEを使っています。