そのタイトル画面においてエラーや警告はないのですがやたら動作が遅く、FPSも指定の半分も下がってしまいます。(自分の環境が悪いのかもしれませんが)
title.cppとtitle.h、それと関係ありそうなところのソースを貼りますがどこがいけないのでしょうか。お願いします。ちなみにVisualC++2008を使っています。
//title.cpp
#include "DxLib.h"
#include "main.h"
#include "Keyboard.h"
#include "title.h"
MenuElement_t MenuElement[3]=
{
{ 20, 100, "ゲームスタート" },
{ 12, 200, "ヘルプ" },
{ 12, 300, "ゲーム終了" },
};
static int SelectNum = 0;
static void Title_Calc();
static void Title_Draw();
// タイトル画面
e_GameState Title(){
Title_Calc();
Title_Draw();
if( KeyGet(KEY_INPUT_RETURN) == 1 )
{
if(SelectNum == 0)
{
return Game_State_Main; //ゲームメインへ
}
}
return g_MainData.GameState; //継続する
}
//タイトル画面の計算
static void Title_Calc()
{
if( KeyGet(KEY_INPUT_DOWN) == 1 )
{
SelectNum = (SelectNum + 1) % 3 ; //下方向へループ
}
if( KeyGet(KEY_INPUT_UP) == 1 )
{
SelectNum = (SelectNum + 2) % 3 ; //上方向へループ
}
if( KeyGet(KEY_INPUT_DOWN) >= 1 || KeyGet(KEY_INPUT_UP) >= 1)
{
for( int i=0 ; i < 3 ; i++ )
{
if(i = SelectNum)
{
MenuElement[i].fontsize = 20;
} else {
MenuElement[i].fontsize = 12;
}
}
}
}
//タイトル画面を描く
static void Title_Draw()
{
CenterDrawString(GAME_TITLE_STR, 32, 30, GetColor(255,255,255));
for( int i=0 ; i < 3 ; i++ )
{
CenterDrawString(MenuElement[i].name , MenuElement[i].fontsize , MenuElement[i].y , GetColor(255,255,255));
}
}//title.h
#ifndef DEF_TITLE_H
#define DEF_TITLE_H
typedef struct {
int fontsize , y ;
char name[128];
} MenuElement_t;
extern e_GameState Title();
#endif DEF_TITLE_H