[comsub.h]
ヘッダです。
関数は一つだけです。
INCLUDE_COMSUB_Hは多重インクルードを防ぐおまじないです。
#ifndef INCLUDE_COMSUB_H
#define INCLUDE_COMSUB_H
// 中央に文字を出す。
void CenterDrawString( char *str, int fontsize, int y, int color );
#endif /*INCLUDE_COMSUB_H*/
[comsub.cpp]
文字列を中央に表示する関数です。
同じようなのが多発したので一つにまとめました。
#include "main.h"
#include "comsub.h"
//----------------------------------------------------------------------
// 中央に文字を出す。
//----------------------------------------------------------------------
void CenterDrawString( char *str, int fontsize, int y, int color )
{
SetFontSize( fontsize ); //文字の大きさ
int StrSizeX = GetDrawStringWidth(str,(int)strlen(str)); //文字表示の幅を得る。
DrawString( (SCREEN_X-StrSizeX)/2, y, str, color ); //センターに表示
}
ゲーム本編の関数を定義します。
#ifndef INCLUDE_GAMEMAIN_H
#define INCLUDE_GAMEMAIN_H
// ゲーム本編
extern GameState_t GameMain();
#endif /*INCLUDE_GAMEMAIN_H*/
[gameMain.cpp]
ゲーム本編のコードです。
押すボタンでゲームオーバーとエンディングに分岐する様になっています。
基本的なところは、Title()とかの関数と変わりません。
#include "main.h"
#include "comsub.h"
#include "gameMain.h"
//----------------------------------------------------------------------
// ゲーム本編
//----------------------------------------------------------------------
GameState_t GameMain()
{
// ゲーム本編だよって表示
CenterDrawString( "ゲーム本編です。", 28, 160, GetColor(255,255,255) );
// ゲームオーバーのキー入力
CenterDrawString( "「G」ボタンでゲームオーバーになります。", 20, 240, GetColor(155,155,255) );
if( g_MainData.key[KEY_INPUT_G] == 1) {
return GAME_STATE_GAMEOVER;
}
// エンディングのキー入力
CenterDrawString( "「E」ボタンでエンディングになります。", 20, 280, GetColor(155,155,255) );
if( g_MainData.key[KEY_INPUT_E] == 1) {
return GAME_STATE_ENDING;
}
// 継続
return g_MainData.gameState;
}
http://softyasu.net/dlcounter/?id=EASYRPG01
説明していない部分もあるので、必ず違いを確認してくださいね。駆け足説明なので分からないことがあったら聞いてください。
では、次回は日付未定ですがゲーム本編の画面遷移を作成します。よろしく、お付き合いください。
[修正]
ダブルアンダースコアを止めました。