[過去ログ]
親父PGがゲームを作り始めるスレッド (668レス)
親父PGがゲームを作り始めるスレッド http://mevius.5ch.net/test/read.cgi/gamedev/1080582036/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
198: 親父PG [] 04/04/09 07:10 ID:Ihr7T82R >>194-197 144氏さん 考察ありがとうございます。今回のケースはswitch文の構文が適していますね。 switch (fg){ case 0:{seen1;++fg;break;} case 1:{seen2;++fg;break;} case 2:{seen3;++fg;break;} default:{NonOp} } Cで書くとこうなります。これを置き換えます。 777 (MAPposition) X,Y EQ (価)a ,b start switch 4 778 (fg)A eq 0 CALL シーン1(fg A) 779 (fg)A eq 1 CALL シーン2(fg A) 780 (fg)A eq 2 CALL シーン3(fg A) 781 CALL シーン4(fgA) 782 return(0) シーン0 deviceWait() KEYUP:メッセージ出力1、++FG KETLEFT:メッセージ出力2、FG=0 return (next) http://mevius.5ch.net/test/read.cgi/gamedev/1080582036/198
199: 親父PG [] 04/04/09 07:10 ID:Ihr7T82R シーン側も以下のようにコンパイルされます (Keydevice) a start switch 2 a EQ KEYUP goto localindex 1 a EQ KEYLEFT goto localindex 4 PUTMES 1(文字列INDEX) FGOP +1 return PUTMES 2(文字列INDEX) FGOP 0 return データ−のお尻に追加 文字列 array index of string max ... 0,24 "宝石が..." "宝石を拾った..." あとで説明文書きます http://mevius.5ch.net/test/read.cgi/gamedev/1080582036/199
200: 親父PG [] 04/04/09 08:07 ID:Ihr7T82R 続き シーンデータについて考察してみました。シーンデータ−は以下の要求を満たす為に定義されます。 ○ゲーム内の処理命令を表す ○可変長をサポート ○ストリングが入る ○また、ここに1つだけ判断文を定義する事ができます。 定義できる判断文 DeviceWait系 ButtonPush系 設定なし FGに対する操作 他のトリガーの呼出 DeviceWait系、ButtonPush系 この2つは内部的にはトリガーテーブルを呼んでいるのと同じなのですが、シナリオの文法上煩雑になるので1文で定義できるようにします。 戻り値に対して処理のスタート部分を分岐できます。 ・スクリプト上の文法 deviceWait() KEYUP:メッセージ出力1、++FG KETLEFT:メッセージ出力2、FG=0 ・展開された形 (Keydevice) a start switch 2 a EQ KEYUP goto localindex 1 a EQ KEYLEFT goto localindex 4 ・実際の処理はこのあと1行ずつ定義されます PUTMES 1(文字列INDEX) FGOP +1 return これらの1行1行もあのトリガーテーブルと同じフォーマットで表すことができます。 文字列は別の場所に一括してまとめられて、内部ではインデックス扱い char*[a] に置き換わります。 シナリオを書く時の文法とコンパイル後の文法やデータ−の配置は異なります。 シナリオを各段階では「可変長」で表記できます。 >シリアルナンバを使用するのは、配列のアドレッシングのためでしょ? これは少し違います。地形MAPを切り替えた時に、同時座標のトリガーを判断するためにあります。 http://mevius.5ch.net/test/read.cgi/gamedev/1080582036/200
201: 親父PG [] 04/04/09 09:26 ID:Ihr7T82R すこし拡張しました struct { int SelfID; //シリアル番号 int CommandID;//基本命令系 byte CmpSeed1; //int CmpTarget1が何を示すかの種類 FGテーブル デバイス 関数戻り値 値 int CmpTarget1; //値 int CmpTarget1_2; //値(予備) byte CmpSeed2; //int2 CmpTarget1が何を示すかの種類 FGテーブル デバイス 関数戻り値 値 int CmpTarget2; //値 int CmpTarget2_2;//予備 byte CmpOP; //上の値の比較方法 byte CmpOP; //真/偽どちらを使うか? (追加 short int ActCommand ; //何をするか? MOVE FG値操作 次処理 シーン呼び出し int ActValue1; //値 ActCommandによって扱いが異なる int ActValue2; int ActValue3; int ActValue4; //リザーブ }; http://mevius.5ch.net/test/read.cgi/gamedev/1080582036/201
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s