以前,この掲示板で質問した者です。現在,DxLibでRPGを制作しているのですが,名前入力画面でつまずいてしまいました。
かなを50音順に表示することはできたのですが,その際に処理が重くなってしまいます(fpsが27前後)。以下がソースコードになります。
//文字・文字列表示
void showCharStrToName(int toNameState, int nowShowChar){
const int sa = 1;
const int stringNum = 7;
const char strAtcName[64] = { "主人公の名前を決めてください。" };
const char strSelectMode[][5] = { "かな", "カナ", "漢字", "英数", "消去", "戻る", "OK!" };
const char chKana1ToName[][3] = {
"あ", "い", "う", "え", "お",
"か", "き", "く", "け", "こ",
"さ", "し", "す", "せ", "そ",
"た", "ち", "つ", "て", "と",
"な", "に", "ぬ", "ね", "の",
"は", "ひ", "ふ", "へ", "ほ",
"ま", "み", "む", "め", "も",
"や", "ゆ", "よ", "わ", "ん",
"ら", "り", "る", "れ", "ろ",
"が", "ぎ", "ぐ", "げ", "ご",
"ざ", "じ", "す", "ぜ", "ぞ",
"だ", "ぢ", "づ", "で", "ど",
"ば", "び", "ぶ", "べ", "ぼ",
"ぱ", "ぴ", "ぷ", "ぺ", "ぽ",
"ぁ", "ぃ", "ぅ", "ぇ", "ぉ",
"っ", "ゃ", "ゅ", "ょ", "ゎ",
"を", " ", "ー", "=", "~",
"¥", "#", "$", "%", "&"
};
/*static char chKana2ToName[][3] = {
"が", "ぎ", "ぐ", "げ", "ご",
"ざ", "じ", "ず", "ぜ", "ぞ",
"だ", "ぢ", "づ", "で", "ど",
"ば", "び", "ぶ", "べ", "ぼ",
"ぱ", "ぴ", "ぷ", "ぺ", "ぽ",
"ぁ", "ぃ", "ぅ", "ぇ", "ぉ",
"っ", "ゃ", "ゅ", "ょ", "ゎ",
"を", " ", "ー", "=", "~",
"¥", "#", "$", "%", "&"
};*/
static int mojiColor[] = { CHAR_COLOR2, CHAR_COLOR1 };
switch (toNameState){
case 0:
for (int i = 0; i < 2; i++){
DrawStringToHandle(100 + sa - i, 80 + sa - i, strAtcName, mojiColor[i], Font[2].font);
for (int j = 0; j < stringNum; j++){
DrawStringToHandle(100 + sa - i, (192 + j * 32) + sa - i, strSelectMode[j], mojiColor[i], Font[2].font);
}
if (nowShowChar == 0){ //ひらがな表示
int num;
for (int j = 0; j < 9; j++){
for (int k = 0; k < 5; k++){
num = j * 5 + k;
DrawStringToHandle((180 + k * 32) + sa - i, (192 + j * 24) + sa - i, chKana1ToName[num], mojiColor[i], Font[2].font);
DrawStringToHandle((368 + k * 32) + sa - i, (192 + j * 24) + sa - i, chKana1ToName[num + 45], mojiColor[i], Font[2].font);
}
}
}
}
break;
}
//DrawLine(182,0,182,480,COLOR_BLACK);
//DrawLine(0, 360, 640, 360, COLOR_BLACK);
}
62行目のchKana1ToName[num + 45]の添字をnumにしたりすると処理速度が変わらず普通に動作します。
他にも,配列を別々に分けたり,strcpyで後から文字列を代入してみたりしましたが改善策が見つからず半日中唸ってました。
一体,なぜこのようになるのか,また改善策はどのようなものがあるのか教えていただければ助かります。
制作環境は,Windows7,Visual Studio Express 2013 for Wisows Desktopです。よろしくお願いします。