DXライブラリである座標を中央にして文字列を描画し、ボタンとするコード。同じ文字列リテラルを3個ずつ使用してしまっていてよくない。
DrawGraph(50,300,
buttonImage[loadStatus==GAME_STATUS_MAINGAME_INIT?1:0],
FALSE);
DrawString(
50+75-GetDrawStringWidth("スタート",
lstrlen("スタート"))/2,
300+20-GetFontSize()/2,
"スタート",clBlack);
DrawGraph(245,300,
buttonImage[loadStatus==GAME_STATUS_PRACTICE_INIT?1:0],
FALSE);
DrawString(
245+75-GetDrawStringWidth("練習スタート",
lstrlen("練習スタート"))/2,
300+20-GetFontSize()/2,
"練習スタート",clBlack);
DrawGraph(440,300,
buttonImage[loadStatus==GAME_STATUS_TUTORIAL_INIT?1:0],
FALSE);
DrawString(
440+75-GetDrawStringWidth("ルール説明",
lstrlen("ルール説明"))/2,
300+20-GetFontSize()/2,
"ルール説明",clBlack);
DrawGraph(50,380,
buttonImage[loadStatus==GAME_STATUS_RANKING_INIT?1:0],
FALSE);
DrawString(
50+75-GetDrawStringWidth("ランキング",
lstrlen("ランキング"))/2,
380+20-GetFontSize()/2,
"ランキング",clBlack);
DrawGraph(245,380,
buttonImage[loadStatus==GAME_STATUS_OMAKE_INIT?1:0],
FALSE);
DrawString(
245+75-GetDrawStringWidth("おまけ",
lstrlen("おまけ"))/2,
380+20-GetFontSize()/2,
"おまけ",clBlack);
DrawGraph(440,380,
buttonImage[loadStatus==GAME_STATUS_END?1:0],
FALSE);
DrawString(
440+75-GetDrawStringWidth("終了",
lstrlen("終了"))/2,
380+20-GetFontSize()/2,
"終了",clBlack);
この問題は「同じ文字列を3個ずつ使用している」という問題だけ?
アピール文中の「同じものを使用している」という要素は他にあるはずだと思います。
・メソッドの改行のやりかたが気に食わない
・文字列はどこかで宣言して使いまわしていいんじゃない?
・ルーチン化しよう(提案)
文字列もそうだけど座標がマジックナンバーなのが一番問題
似たようなあちらこちらに部分がいっぱい…