キャラクタ構造体を使うことにより、キャラクタの増減に簡単に対応できたことが分かるだろうか?もしこの修正をキャラクタ構造を使わないで行った場合、これほどスムーズに修正はできないと思われる。
これだけでもキャラクタ構造体を使うメリットは大きいが、それ以上に便利なのが「構造体の一括代入」である。敵キャラを出現させる際、構造体の一括代入を行うことにより、簡単に初期化を行っているが、もし一括代入を行わなければ、敵キャラの各メンバ1つ1つに対して初期化を行わなければならず、処理が面倒になる(関数化してもそれなりに面倒)。
また、今回の修正では行わなかったが、構造体を使えば、関数の引数に構造体変数を指定できるため、各メンバを1つ1つ引数に渡すよりもずっと簡単にプログラミングできる。
static STATUS status; bool chk; ・ ・ ・ chk = kansu(status); // 構造体変数statusの値を引数にする ・ ・ ・ bool kansu(STATUS st) { if (st.flg == 1) return (true); else return (false); }
static STATUS status; bool chk; ・ ・ ・ chk = kansu(&status); // 構造体変数statusのアドレスを引数にする ・ ・ ・ bool kansu(LPSTATUS st) { if (st->flg == 1) return (true); else return (false); }
このように、構造体の機能をしっかり理解していれば、ゲーム製作においてプログラミングが非常に効率よく行えるようになる。是非マスターしてください。
| BACK(敵キャラを簡単に増加させる) | NEXT(練習問題) |