探検
親父PGがゲームを作り始めるスレッド
■ このスレッドは過去ログ倉庫に格納されています
1親父PG
04/03/30 02:40ID:phIrC7nNC++やC、アセンブラは昔こなしたし、プログラムの事なら自信はあるけど
ゲームは作った事が無い方。現場からも引退したし(w。
ここは一つ趣味でDirectXでも勉強して、ゲームでも作ってみようかなぁと思った、
オジサンPGのスレッドです。
一緒にマターリライブラリから作りませんか?
198親父PG
04/04/09 07:10ID: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)
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)
199親父PG
04/04/09 07:10ID: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
"宝石が..."
"宝石を拾った..."
あとで説明文書きます
(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
"宝石が..."
"宝石を拾った..."
あとで説明文書きます
200親父PG
04/04/09 08:07ID: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を切り替えた時に、同時座標のトリガーを判断するためにあります。
シーンデータについて考察してみました。シーンデータ−は以下の要求を満たす為に定義されます。
○ゲーム内の処理命令を表す ○可変長をサポート ○ストリングが入る ○また、ここに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を切り替えた時に、同時座標のトリガーを判断するためにあります。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 真冬に“エアコン”がなく孤独な死…生活保護受給者40代シングルマザーの悲劇が行政に問いかける“教訓” [ぐれ★]
- 高市首相「無責任な減税しない」、国債発行抑える 単独インタビュー - 日経 [少考さん★]
- 渡邊渚「スカートが短いから痴漢してOKなんておかしい」「数えきれないほど痴漢に遭った」加害者が守られがちな痴漢事件について思うこと [Ailuropoda melanoleuca★]
- 【東京】西東京市の住宅で親子4人死亡 母親名義のマンションで知人男性も死亡 いきさつや関連を捜査 警視庁 ★4 [ぐれ★]
- 【芸能】グラドル・阿波みなみ 握手会が急きょ中止… 客が一人も来ず 「並びが0人で中止」呆然写真に驚愕感想や辛辣意見も [冬月記者★]
- 日テレの男性記者と女性記者がカラオケBOXで行為に及び、NHK記者が動画撮影 動画が拡散するも女性記者は「泥酔していて記憶がない」★5 [Ailuropoda melanoleuca★]
- 【実況】博衣こよりのえちえちしゃどばすチャンネルビヨンド クリスマススペシャル!🧪★2
- 【高市悲報】日本人、ガチでクリスマスに飽きる [126042664]
- 【実況】博衣こよりのえちえちしゃどばすチャンネルビヨンド クリスマススペシャル!🧪
- フェラって難しくね?
- 百田尚樹さん 敗訴wwwwwwwwwwwwwwwwwwwwwwww [977790669]
- 【悲報】国民・玉木「連立したい」 [115996789]
