クロノス・クラウン - 記事検索

ツイート @rutenさんをフォロー
クロクロ ショップ 本、ゲーム、同人誌他を販売
クロクロ ツールズ 便利なWebアプリを多数収録
IT用語大辞典 IT用語を解説
ソフトウェア
めもりーくりーなー Winのメモリーをお掃除するソフト
Novel Supporter 小説推敲補助ソフト
PCソフト 便利なソフトを多数公開
Webサービス 便利で楽しいサービス多数
レトロゲームファクトリー レトロゲーム移植会社のお仕事小説
#電書ハック 電子書籍編集部のお仕事小説
顔貌売人 IT系ミステリ
裏切りのプログラム IT系ミステリ
ゲーム
Little Bit War Switch向け高速RTS
TinyWar high-speed 1ステージ数分の8bit風RTS
EX リバーシ 変形盤面、ステージ多数
PuzzleAndGame.com ブラウザで遊べるパズルやゲーム
no link
2013年06月17日 10:34:18
 夏のコミケ「コミックマーケット84」の準備を進行中。

月曜日 東地区“ポ”ブロック−33b「るてんのお部屋」

 週末を利用して、ダイアログ管理システムを作成していました。

□コミケ84 サンプル 003

コミケ84 スクリーンショット 003




「ダイアログ管理システムとは何ぞや」ということですが、リスト ダイアログを使って、設定ウィンドウなどの、「ネストするメニュー」を実現するためのフレームワークです。

 なぜそんなものを作ったかというと、これまでの経験からです。

 私は基本的にシミュレーションゲームを作ることが多いです。そうなると、多くのダイアログ(それもネストする)ものを表示する必要があります。

 分かりやすく言うと、初代ドラゴンクエストのツリー状のメニュー画面のようなものを、複数のダイアログで実現するわけです。

 これまで、PC、iアプリ、Android、で様々なゲームを作って来ましたが、このメニューを実現するシステムをどう作るかが、シミュレーション系ゲーム開発の肝になってきます。

 管理しやすいシステムを作ると、開発効率が上がります。

 逆に、管理しにくいシステムを作ると、開発効率が下がります。

 アクションゲームを中心に作る人には、あまりぶち当たらない悩みかもしれません。

 というわけで、週末の時間を利用して、シミュレーション系ゲームの、開発効率を大きく左右する部分を実装していました。

 このダイアログ管理を含む、ダイアログ部分全体のコードは、現在のコード全体の約1/4になります。いかに比重が大きいかが分かります。



 というわけで、実際に作ったダイアログ管理システムを利用して、ネストするメニュー ダイアログを実装している部分のコードです。

 かなりシンプルにできた方だと思います。


/**
* ダイアログ管理 構造
*/

// ダイアログ構造
var dlgTree = {txt: "ダイアログ構造", msg: "ルートです。", nst: [
{txt: "選択肢0 末端"}
,{txt: "選択肢1 項目2つ", nst: [
{txt: "選択肢1-0"}
,{txt: "選択肢1-1"}
]}
,{txt: "選択肢2 項目3つ", nst: [
{txt: "選択肢2-0"}
,{txt: "選択肢2-1"}
,{txt: "選択肢2-2"}
]}
,{txt: "選択肢3 非表示混じり", msg: "項目1,3を非表示", nst: [
{txt: "選択肢3-0"}
,{txt: "選択肢3-1", enbl: false}
,{txt: "選択肢3-2"}
,{txt: "選択肢3-3", enbl: false}
]}
]};

// 選択内容保持
var sel = 1;
var sel1 = 0;
var sel2 = 0;
var sel3 = 0;

// ダイアログ処理
dlgTree.fnc = {
pre: function(brnch, arg) {
arg.selDflt = sel;
arg.datArr[1] = brnch.nst[1].txt + " 選択" + sel1;
arg.datArr[2] = brnch.nst[2].txt + " 選択" + sel2;
arg.datArr[3] = brnch.nst[3].txt + " 選択" + sel3;
}
,pst: function(brnch, res) {
if (res != -1) {
sel = res;
console.log("sel - " + brnch.nst[res].txt);
}
}
};
dlgTree.nst[1].fnc = {
pre: function(brnch, arg) {
arg.selDflt = sel1;
}
,pst: function(brnch, res) {
if (res != -1) {
sel1 = res;
console.log("sel1 - " + brnch.nst[res].txt);
}
}
}
dlgTree.nst[2].fnc = {
pst: function(brnch, res) {
if (res != -1) {
sel2 = res;
console.log("sel2 - " + brnch.nst[res].txt);
}
}
}
dlgTree.nst[3].fnc = {
pst: function(brnch, res) {
if (res != -1) {
sel3 = res;
console.log("sel3 - " + brnch.nst[res].txt);
}
}
}

// ダイアログ設定
var dlgOpt = {
cnslBck: true, selBck: true,
btnDflt: crocro.game.Dialog.BTN_BCK
};

// ダイアログ管理
crocro.game.Dialog.Manager.start(dlgTree, dlgOpt);



 さてと、次はリソースの管理システムを作らないといけないです。

 サクサクと進めましょう。
最新20件 (全て見る)

柳井が執筆した本や商品 (全て見る

マンガでわかるJavaScriptのPromise
JavaScriptのPromiseをマンガで解説。無料。
レトロ風RPG 全コード
JSのレトロゲーム風RPGの全コードを掲載&解説。
タワーディフェンス 全コード
JSのタワーディフェンスの全コードを掲載&解説。
レトロゲームファクトリー
過去のゲームを最新機用に移植する会社のお仕事小説。新潮社より発売中。
#電書ハック
電子書籍編集部のお仕事小説。文藝春秋より発売中。
顔貌売人 ハッカー探偵 鹿敷堂桂馬
シリーズ第2弾。文藝春秋より発売中。
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
松本清張賞の最終候補に残った拙作小説(デビュー作)。

サイト目次

PCソフト/Webアプリ/ゲーム

記事/マンガ

柳井の同人活動

開発

携帯・スマホ

アナログ・ゲーム

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について