###前提・実現したいこと
現在DXライブラリを使用してC言語でゲーム作りをしてます。
初期化するときにselect_numberにstaticをつけないと、何度も、変数select_numberが0で初期化されてしまいます。staticなしで最初の一度だけ0で初期化される方法はないでしょうか。staticをあまり使わない方法で変数select_numberをうまく扱う方法があれば教えてください。
あと、staticは静的メモリの確保だからあまり使わないほうがいいという認識であっていますか?
###発生している問題・エラーメッセージ
特になし。
###該当のソースコード
void DrawGameSelect1() { char Buf[256]; GetHitKeyStateAll(Buf); /*ここをなんとかしたい。*/ static int select_number = 0; /*staticをつけなかったらこの関数で値を変えてもすぐに0で初期化されてしまう*/ Select(2, 4, &select_number); DrawGraph(0, 0, g_imghandles.select1[select_number], TRUE); DrawGraph(0, 500, g_imghandles.backspace, TRUE); if (Buf[KEY_INPUT_BACK] == 1) { g_gamestate = GAME_TITLE; } } void Select(int x, int n, int *number) { char Buf[256]; GetHitKeyStateAll(Buf); if (Buf[KEY_INPUT_LEFT] == 1) { --*number; } if (Buf[KEY_INPUT_RIGHT] == 1) { ++*number; } if (Buf[KEY_INPUT_UP] == 1) { *number = *number - x; } if (Buf[KEY_INPUT_DOWN] == 1) { *number = *number + x; } if (*number < 0) { *number = 0; } if (*number > n - 1) { *number = n - 1; } }
###試したこと
staticをはずす。
###補足情報(言語/FW/ツール等のバージョンなど)
C言語、DXライブラリ、visualstudio comunity2015
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/12 14:05
2017/11/12 14:22