2010年10月02日 20:18:15
「Army & Maiden」ですが、PCとAndroidのコンパチだけでなく、今後の開発の効率化のために、ソースコードの切り分けを行っていました。
以下、複数のプロジェクトに分けた、プログラムの構成図です。括弧内は、ソースコードの分量です。ソースコードの比率が分かると思います(まだファイルの整理前なので、何割か変わる可能性がありますが)。
●CroCroWrp(242 KB)
┣●CroCroWrpPc(94.2 KB)
┃ ┣━━●SimWarPc(2.88 KB)
┣●SimWar(318 KB)
┃ ┣━━●SimWarAnd(1.15 KB)
┗●CroCroWrpAnd(207 KB)
それぞれ、ビルドに親プロジェクトを含めることで、プロジェクトを作成します。
以下、それぞれのプロジェクトの解説です。
●CroCroWrp
PC、Androidコンパチにするために、環境依存部分を全てラップクラスに入れて、ゲーム開発の基本システムを構成したプロジェクトです。
以下のような内容のクラスが入っています。
○ラップ関係
・WrpDw(描画処理をラップするクラス)
・WrpEnv(各種環境依存をラップするクラス)
・WrpFile(ファイルのデフォルト入出力先やリソース取得をラップするクラス)
・WrpNet(通信処理をラップするクラス)
・WrpSnd(音声処理をラップするクラス)
○ゲーム関係
・ゲーム・クラス
・変数管理クラス(変数の自動保存、読み込みのサポート)
・クリッカブル・オブジェクト群
・ボタン、文字ボタン、単純描画、ドラッグオブジェクト、タブ、スクリプト描画。
・ダイアログ・パーツ(タイトル、リストボタン、イメージリストボタン、スライドバー)。
・ライトボックス。
(各オブジェクトは、画面スクロールによる絶対位置、相対位置の切り替え可能)
(各オブジェクトは継承することで、ゲームのユニットなどを作成可能)
・各種管理クラス
・キャンバスの管理。
・レイアウトの管理。
・設定の管理。
・言語情報の管理。
・シーンの管理。
・サウンドの管理(BGM切り替えや、効果音の管理)。
・ユーティリティ・クラス。
・描画ユーティリティ。
・ファイル・マスク化ユーティリティ。
・ソート・ユーティリティ。
・各種ツール・ユーティリティ。
●CroCroWrpPc
ラップ部分のPC部分クラスです。
ウィンドウの初期化と構築も行う。ウィンドウ初期化時に、環境依存部分のラップ・クラスの登録を行います。
●CroCroWrpAnd
ラップ部分のAndroid部分クラスです。
Activity(PCのウィンドウに相当)の初期化と構築も行う。ウィンドウ初期化時に、環境依存部分のラップ・クラスの登録を行います。
●SimWar
ゲームの本体です。「CroCroWrp」の「AppLoop」クラスを継承して初期化し、「Scn」クラスを継承したクラスを記述していくことで、ゲームを作成します。
環境依存部分は全てラップされているので、デバイスに依存しないゲームのプログラムとなります。
このゲーム部分を差し替えることで、他のPCとAndroidコンパチのゲームを作成できます。
●SimWarPc
「CroCroWrp」「CroCroWrpPc」「SimWar」をビルド時にリンクすることで、ゲームを作成します。
このプログラムは、統合目的のためのものなので、ほとんどソースはありません。
●SimWarAnd
「CroCroWrp」「CroCroWrpAnd」「SimWar」をビルド時にリンクすることで、ゲームを作成します。
このプログラムも、統合目的のためのものなので、ほとんどソースはありません。
というわけで、現時点での「SimWarAnd」プロジェクトのソースコードを、以下に掲載します。
極限まで簡素化していることが分かると思います。実質10行以下です。
これで、Androidアプリが1本完成します。
package com.crocro.simWar.dvc.and;
import com.crocro.simWar.app.AppLoopSimWar;
public class AppActivity extends com.crocro.wrp.dvc.and.AppActivity {
@Override
public void initRes() {
gR = (Object)new R(); // リソース・アクセス用変数
gAL = new AppLoopSimWar(); // AppLoopの初期化
}
}