今回もみなさんのお力をお借りしたいです。
本題に入りましょう。
以前に選択画面の指摘を受けたので現在、http://dixq.net/g/03_04.htmlを参考にゲームのタイトル画面を製作しています。
そして、マイナス方向へのループも理解できました。
しかし、メインループの中にすべてをごちゃごちゃと書くよりは大まかな処理ごとに関数でわけようと考えました。
そこで選択画面の処理を新たに関数に書きました。
すると思うように動作しないのです。
参考ページの
if( Key[ KEY_INPUT_DOWN ] == 1 || Key[ KEY_INPUT_UP ] == 1 ){ // 下キーか、上キーが押された瞬間
for( int i=0; i<5; i++ ){ // メニュー項目数である5個ループ処理
if( i == SelectNum ){ // 今処理しているのが、選択番号と同じ要素なら
MenuElement[i].x = 80; // 座標を80にする
} else { // 今処理しているのが、選択番号以外なら
MenuElement[i].x = 100;// 座標を100にする
}
}
}
// 描画フェーズ
for( int i=0; i<5; i++ ){ // メニュー項目を描画
DrawFormatString( MenuElement[i].x, MenuElement[i].y, GetColor(255,255,255), MenuElement[i].name );
}これを新たに作った関数、void title(int SelectNum, MenuElement_t MenuElement[5])に入れたら「おまけ」または「ゲーム終了」にしか動きません。
自分では描画フェーズのint iが1,4だけになってしまうからかな、とは思うのですがいまいち理解できません。
そもそも構造体の受け渡しはこれでいいのでしょうか。
つまり「おまけ」または「ゲーム終了」にしか動かない理由、それと構造体の受け渡しについても教えていただきたいです。