親父PGがゲームを作り始めるスレッド
at GAMEDEV
[前50を表示]
200:親父PG
04/04/09 08:07 Ihr7T82R.net
続き
シーンデータについて考察してみました。シーンデータ−は以下の要求を満たす為に定義されます。
○ゲーム内の処理命令を表す ○可変長をサポート ○ストリングが入る ○また、ここに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を切り替えた時に、同時座標のトリガーを判断するためにあります。
201:親父PG
04/04/09 09:26 Ihr7T82R.net
すこし拡張しました
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;
//リザーブ
};
202:名前は開発中のものです。
04/04/09 16:26 HmpNauZs.net
もう何がなにやら・・・
203:名前は開発中のものです。
04/04/09 16:48 Ws2ssbno.net
チチキノドク スグカエレ
204:名前は開発中のものです。
04/04/09 19:40 9dUWl+kl.net
俺はスレ主には特に何も言わんが
けっこう可愛そうな奴らがいるみたいだなぁ この板には
205:名前は開発中のものです。
04/04/10 03:46 yG5v3On8.net
がんがれ
206:名前は開発中のものです。
04/04/10 06:51 ZruuXOcF.net
おおよそ固まるまでsageで行ってみてわ? >オヤジさん
207:親父PG
04/04/10 09:25 Sr13ZjT1.net
>>202
PG以外はなんだがわけわからないですね。反省orz...
前の書き込みに「戦闘システム」の計画を書いたので何かご意見をいただければ幸いです
>>203
何処へ帰ればorz
>>204
まぁマッタリいきましょう
>>205
OK!
>>206
了解。 今日も仕事ですorz こっそり書き込みです。
現在ツール側を作成しておりまして、本体側の進行はSTOPしています。
そのツールが完成して、本体のPGに反映された頃に一回公開します。
といってもボタンとウインドとテキストのコントロール部分だけですけどねorz
208:144
04/04/10 13:01 1EUDp4ba.net
>>198-200
トリガから別のトリガを呼び出せるというのは書いてあったけど、return まで逐次実行ってのはどこにも書いてなかったよ。
後出しだしズルいよw。
ま、それはいいとして、オヤジタン の記述例では、トリガもシーンも、オヤジタン のいうPG以外が対応できるレベルにみえないけど。
それと、トリガテーブルって、同時にいくつも存在するの?
同時ってのは、実行時の話なんだけど、仮に1つだとすると、エクセルとどのように整合性を保つのかな、と思って。
シーンファイルに、トリガサブルーチンがあるのはいいと思うけどね。
なんかもう、普通のスクリプトのバイトコードと話が変わらないように見えるよ。
単にバイトコードのフォーマットが見たことないほどリッチなだけで。
そして、エクセルで入力すると言い張ってるのは、アセンブリ言語での記述を要求しているのと等価にしか思えない。
> >シリアルナンバを使用するのは、配列のアドレッシングのためでしょ?
> これは少し違います。地形MAPを切り替えた時に、同時座標のトリガーを判断するためにあります。
地形マップを切り替えるというのは、
・どこかのマップでスイッチを入れる
・別のマップで跳ね橋が下りる
のようなときに、マップチップテーブルだけの入れ替えをするような話だよね?
それをシリアルナンバで判定するということは結局 std::map< int/*シリアル*/, int/*トリガ配列の添え字*/ >
のような形で判定するんでしょ?
俺は、エクセル上でもシリアルナンバの入力を強要してるのかと思ったんだけど、トリガコンパイラが文字列で
解決してくれるならそれでいいと思うよ。
ところで、>>189 で MAPposition で比較してるけど、本当は MAPBASE::ToDO に 777 が入ってるんだよね?
そうじゃなければ、エクセルで入力するときはコンマ付で入力? マップの大きさは最大256x256?
自信あるみたいだから、思うとおりにやってみるといいでしょう。
使い物になりそうなことは分かったし。
209:名前は開発中のものです。
04/04/10 16:08 ZruuXOcF.net
後出しって・・・・なんかの勝負でもしてるのか?
210:親父PG
04/04/10 20:09 Sr13ZjT1.net
>>144
いろいろと検証ありがとう。いろんな角度から見てもらえてるので、実に助かってます。
対策として具体的な仕様も決まっていくしw
まず書き方の例ですが、ここでの話を判りやすくするためであって実際の文法はもっと判りやすくなるはずです
このへんは「新人ニューウェーブPG」氏に期待します^^。
メイン担当としては、「最終バイナリはこういうイメージにしてね」と伝えなければなりません。
データの意味(解釈方法)を伝えるためにCで書いてみたわけです。
144氏の指摘の多くは私の作業より、一つ上のレイヤーの話と思える部分があります。
トリガーテーブルは(エクセル「でも」編集できる)ここが味噌でエクセルの機能を使って
レコードの操作をいたします。(エクセルと同じ機能のツール作るのは大変だw)
多重ソートとかマクロ機能とかね...別途作ってもいいけど。
エクセルコンポーネント使うなら一緒だ(orz...コレダケデモエツキルヨ
利用理由は主にチェックです。デバックですね。これってありがたいんですよ。ええ(独り言モード
トリガーテーブルは基本は一つですが、動的に後ろに追加しても仕様上動きます。
地形MAP配列にはトリガーを引くことしか指示しません。引数は座標XYZ(65535)+MAPシリアル(65535)になります。何をするかはMAP側ではなくトリガー側が判断します。
作業予想
地形MAPツールは地形データ-とトリガーテーブルを読み込む。
イベントを行いたい場所へマウスでマークしていく。
このときトリガーテーブルにもトリガー情報のみのデータ-が追記される。
保存...
再度開いた時はトリガーテーブルのMAPシリアルを見て以前のマーク場所を再配置する
STEP2
イベントツールはMAP作成ツールによって作られたトリガーテーブルに、必要な情報を追加していく。
このような感じになる予定です。
>>209
勝負はしてないけどね^^ いろいろ言ってくれると助かるよ。
211:親父PG
04/04/10 20:23 Sr13ZjT1.net
都築
>地形マップを切り替えるというのは、
これは「地形MAP配列にはトリガーを引くことしか指示しません。」
この設定が前提にあります。地形データ-を入れ替えた時に同じ座標にイベントがあった場合
受け取った側が判断できません。そのためのMAPシリアルになります。
>・どこかのマップでスイッチを入れる
>・別のマップで跳ね橋が下りる
これはトリガーテーブルのイネーブルをONにすれば良しでしょう。
CAll MAP(B 3,3)//橋
トリガー親父 そのMAPのその座標のトリガーは「なし」だ。交信終了
Call (MAP A 1,1)//スイッチON
トリガー親父 ウィ〜ス トリガ3番(橋のトリガ)イネーブルON
再び
CAll MAP(B 3,3)//橋
トリガー親父 ウィ〜ス 橋をおろせセニョール ついでに MAP A 1、1のフラグもイネーブルにするべ
こんな流れかな
212:親父PG
04/04/10 20:39 Sr13ZjT1.net
誤>トリガー親父 ウィ〜ス 橋をおろせセニョール ついでに MAP A 1、1のフラグもイネーブルにするべ
生 トリガー親父 ウィ〜ス 橋をおろせセニョール ついでに MAP A 1、1のフラグもディスネーブルにするべ
間違えた(汗
間違えたついでに
このシステムの目指すところを書いてもいいのではないかと。勝手に思ったので妄想を書き込みます
このシステムでは「キャラクターデータ-」が中心となり世界を広げていきます。
大昔、D&DというTRPGがありました。あのシステムも最初は赤本から始まりました。
ダンジョンにもぐり宝物を集め、経験値を上げていく。
たくさんのエキスパンション(シナリオ)が生まれてキャラクターは成長していきました。
本システムもこのような流れで大きくしていきたいと思っています。
エキスパンションを通じてのキャラクター成長。
そして、シナリオの作成についてはツールを公開して、誰でもDMになれるようなものを考えています。
シナリオをそれぞれ交換などする事もできるようにしたいと思っています。
またキャラクターに関わる事柄。お店だとか交換所なども一種のシナリオによって構築されます。
全ての完成にはまだまだかかりますが、そこは(追加型 という仕様がなんとかしてくれるはずです(W
213:名前は開発中のものです。
04/04/11 00:46 tw9ZgcmP.net
>>212
でもあんまりシナリオとか簡単に作れるようにすると
あんまり知識の無い人でも簡単にズルができるようになるような。
まぁ、その人がつまらなくなるだけですけど。
214:名前は開発中のものです。
04/04/11 01:02 osyo1R4q.net
>>213
その話は次元が違うものと思われ
本気で解読にかかられたらいくらプロテクトかけてもだめなのと一緒
215:親父PG
04/04/11 10:09 uZkaW7mz.net
>>214 213
バイナリエディタ程度では改変できない仕組みは考えていますが、
214氏のご指摘どうり本気で解析されればプロテクトは無理でしょう。
ローカルで作られたシナリオの経験はキャラシートに反映されないとか、対策はありますけどね。
あとはシナリオに適正レベルを設ける。
システム側でおかしなシナリオを最初から「エラーにより排除」するなど
いろいろと対策はありますけどね。
複合的なエラーチェックでめんどくさくするぐらいしかないのかなorz...
216:新人PG
04/04/13 23:45 w0VogWFU.net
ただいま帰りました。仕事忙しすぎ。
だんだんまとめ辛くなってきましたが、ばんがります。
トリガーデータ案:草案を元にしたもの
[シリアルID]:数値5桁
[基本命令系]:わからん
[値種類1]:英数字5桁以内
[比較対象値1]:数値5桁
[値種類2]:英数字5桁以内
[比較対象値2]:数値5桁
[比較方法]:英数字?
[真処理]:英字?桁
[偽処理]:英字?桁
[パラメータ]:???
記述例)
00001,?????,Int,0,Scene,00020,Equal,ACTSCENE,00030,00002,MOVETRIGGER,00003
IDは00001、比較値1は数値型定数0、比較値2はシーン00020の戻値、比較方法は値等価判断
真の場合シーン00030を読み込みトリガ00002を起動、偽の場合トリガ00003に移動。
とりあえず、Excelで編集と言う事でXML云々は考えない方向で行きます。
このようなCSVを作成していく感じでいいんでしょうか?
217:新人PG
04/04/13 23:49 w0VogWFU.net
なんか殆ど、親父PGタンの頭の中でできあがってるようですね(汗
俺、要るのかな・・・?
218:名前は開発中のものです。
04/04/14 01:26 fCb1f0Lh.net
Excel前提ってのがまず汎用性で問題あるような
最近のマシンオフィス標準搭載かなり減ったし
その辺の自動化もツール担当の仕事かと
219:親父PG
04/04/14 05:14 EE4mRz9N.net
>>217
お疲れさまー、ご無沙汰しています。
>このようなCSVを作成していく感じでいいんでしょうか?
違いますorz...SUMAN
エクセルの話ですが、あくまで「エクセルでも」データ−が見れるというものでありまして、
それはコンパイルされたデータ−を、バイナリ<>CSVツールで編集(デバック)できるように
するというものです。 よってスクリプト記章ツールは別に必要です。
>>217
ここ数日の書き込みでそう思われたのですねorz...
でも、決まったのはメインPGが受け取るバイナリの形でありまして、スクリプト記章ツールがいらなくなったわけではありません。
メインPG側の受け取りバイナリの形と解釈方法を提示しましたので、スクリプト側のツールはスクリプトの文法を(設計)設定して
予定のバイナリを出力するものを、設計してくれることを期待しています。
スクリプトの文法はXMLでも、オリジナルでもOKです。
ここで必用なことはシナリオライターが必要とする機能の調査と設計、機能の単純化などです。
バイナリからの逆復元(バイナリからのソース復元機能)は必用ありません。(ソースコード保存)
メインPG<バイナリ<スクリプトツール
↑↓
CSV
エクセル
スクリプトの文法、設計はまったくの白紙状態です。新人PGさん、大変期待しています。
220:親父PG
04/04/14 05:35 EE4mRz9N.net
>>218
おつかれさま EXCELは補助ツールなのでスクリプトツールは別途作成予定です。
メインPG側のバイナリの形さえ決まっていれば、スクリプトツールは自由に選べます。Excelもそのうちのひとつだと考えてください。
(もっともExcelの場合,スクリプトではなくバイナリエディタっぽい使い方だけどね。)
私の作業の報告
WINDOWの設定ツールがひとまず完成しました。12種類のスタイルを定義できます。
メイン側は使用するときにこれらのスタイル定義にしたがって、先につくったボタン定義用のデータ−構造体より必要なデータ−をコピーして、
画面に作成します。現在、メイン画面にWINDOW本体と上部バーとクローズボタンを表示するところまでです。(WINDOWSの上にWINDOWS作ってるよorz...)
今日は久しぶりの休みです。ぼちぼち作業を始めます。
221:名前は開発中のものです。
04/04/14 10:42 fCb1f0Lh.net
Excelでcsv扱うと文字列の先頭のゼロが数値として読み込むために消えたり
全角数値が半角になったりしてくれるんであんまり便利な物ではないですよ
ダブルクォーテーションでくくった項目は強制的に文字列として読み込んでくれるとよかったのですがね
222:親父PG
04/04/14 10:50 EE4mRz9N.net
>>221
それは拡張子をtxtで読みこめば回避できます。読み込み時にセルの属性指定可能。
このシステムに関してなら、トリガーテーブルに文字列はありませんので大丈夫です。
223:名前は開発中のものです。
04/04/14 17:33 bV4eSf3V.net
ひげぽんOSは飽きたのか?
224:親父PG
04/04/14 17:50 EE4mRz9N.net
>>223
こんなプロジェクトがあったんですね。知りませんでした。orz...
OSを作る気はありまえん(W そんな能力はありませぬorz...
新人PGさんへ 既にご存知かもしれませんがこういうサイトがあります
URLリンク(www.ultrasync.net)
私が仮想マシン側の設計ですね。
この板見てるとツクール派と、それ以外を使ってみたいという方がけっこういらっしゃるようですね。
自作であればスクリプトエンジンが必用ですが、そのへんはみなさんどうしているのかな?
225:名前は開発中のものです。
04/04/14 23:06 FAI9201/.net
>>223
何コイツ?
226:名前は開発中のものです。
04/04/14 23:26 7S1uDrPs.net
ここの親父はまだまだ若い方だろう。
・・・もっと親父になるとマジではかどらなくなるから
今のうちにやりたい事やっときなされ。
227:WinMEMEME!fuckme!
04/04/15 00:25 WvzZ497j.net
unnkoburiburi?
228:新人PG
04/04/15 01:04 XWJTPtW1.net
ただいま帰りました。研修も無しにいきなり出向させられる会社ってどうよ(泣)
>>親父PGタン
なんとなくわかりました。スクリプト言語(みたいなもの)を設計するって事ですね。
それならいっそのこと、トリガーだけではなくてシーン等も記述するできるようにしたいですよね?
あまり汎用的なものは考えていないのですが、現ゲームの作成に特化したものを目指すようにします。
#余談ですが、卒論のテーマと似ていますw
#流用しながら作る予定なので、早く作れるかも?
229:親父PG
04/04/15 07:18 lFmywgB/.net
>>226
^^;ガンバリマス
>>227
orz...
>>228
おつかれさま。お仕事大変ですね。
>スクリプト言語(みたいなもの)を設計するって事ですね。
そうです。よろしくお願いします。
>トリガーだけではなくてシーン等も記述するできるようにしたいですよね?
そうです。そして出力ファイルは分離して行われます。
トリガーとシーンは分離します。
>あまり汎用的なものは考えていないのですが、現ゲームの作成に特化したものを目指すようにします
スクリプト言語内で一旦中間コードにして、そこから出力フォーマット用に変換するように設計すると良いですよ。
出力フォーマットを切り替えると、別の用途用に使えるように切り替える事も出来ます^^;(仕様変更にも強くなりますorz...)
#余談ですが、卒論のテーマと似ていますw
#流用しながら作る予定なので、早く作れるかも?
おお! 期待してますよ♪
230:親父PG
04/04/18 17:10 2197QA5A.net
しばらく書き込みがなくてさびしいので書き込みますorz...
日々少しずつ進んでいますが、なかなか進展しません。今調整いている部分が大掛かりな部分なので仕方ないのですがorz...
親父プロジェクトの構造
LIFE=trueであればACTトリガーvietualFunction
「基底クラススケジュール」→インプリメント部
↑ ↓各オブジェクト(ポリゴンなどをオブジェクト配列のデータより作成)
↑一定周期 描画ループ
Windowloop →→→ 描画
↑
↑
WindowMessage(OSトリガー)→範囲チェック→オブジェクトデータ−の操作
各オブジェクトデータ−配列(STL)
○WINDOWSクラス<−現在作成中 登録済みのWINDOWのスタイルから複製を作って、ポリゴンーテクスチャーボタンなどを画面に配置する。
○ボタンクラス テクスチャとボタンの振る舞い(トリガー)や描画をコントロール
○テクスチャクラス テクスチャのファイルの読み込み部分切り出しなどをコントロール
○ポリゴンクラス 主に四角形を作りテクスチャが張り込まれる。線や点にも対応
○ポリゴンクラス3D 上の機能に3D用に派生したクラス
○ライトクラス ライトを定義するポリゴンと同じように移動させることができる
○フォントクラス フォント表示
○範囲クラス 範囲を定義する(3D対応)
○オブジェクトIDマネージャー オブジェクトを作成した時にユニークなID番号を発行する。各オブジェクトの配列のINDEX値も格納してハンドルからアクセスしたいオブジェクトを識別できる
○プロファイルクラス 定義ファイルの読み込み
○コマンドクラス 下位コマンド全般を定義コントロールする為の関数群
さて、作業にもどりますorz.... パコに入っていたCDが出てきたので押し込んだらCIV3の画面が...激しく誘惑に駆られるw
231:名前は開発中のものです。
04/04/19 18:50 zoW1zDwj.net
今始めてきたけど、親父さんすごいなぁ。
全くわからん。
HPでも立ててみたら?
232:親父PG
04/04/19 20:15 HvqP5Z0m.net
>>231
どうも^^;
HPですが「新人PG」さんのご好意で以下のものがあります。
URLリンク(www.geocities.jp)
さてWINDOWですが、複数面サポート。
クリックにより背面と前面入れ替わる動き。
タイトルバーの表示
キャプションの表示
クローズボタンの表示、MOUSEOVERで反応、クリックでウインド閉じる
タイトルバーをクリックして動かす
Windowのレクト領域の頂点に色を設定できる機能
Windowの半透明表示
こんな所までできました。
改めてWINDOWSのコントールオブジェクトを1から造るの面倒だなぁとorz...
しかも、スクロール機能、拡大縮小機能がありませんね。マンドクサイorz.....
まぁWINDOWSを造っているわけではないので、ボタンとメニューとテキストを載せて、
動かせるようになったら、一旦収束してスクリプトに移ります。
バイナリを解読して仮想スクリプト用エンジンを造る事になります。
バイナリコードと命令表を作らないといけません。
ほんとコツコツだなぁ(笑
233:231
04/04/19 21:14 AzIQfmcz.net
おお、早速反応が来た。なんだかうれしい。
VisualC買うべきですかね。一応高校生なんでアカデミックで買えるから買ったほうがいいんですかね。
いや、Cのかけらもわかってないんですけど。
金がないからDev-Cという安易な考えは捨てちまったほうがいいですね。
紹介していただいたページにも書いてあるし。
んじゃ、がんばってください
234:親父PG
04/04/19 21:46 HvqP5Z0m.net
>>233
アカデミックですとC++.net10000円しないんですよね。
フルで買っても2万5千円ぐらいかな?
ちなみにC++.net単体でCの学習は辛いかもしれない。
言語の解説は入っておらず、クラス構成が書かれたポスターのような表が何枚か入ってるだけ。
最初の事初めでしたらC#のほうがマネージドコードやコンポ−ネントなどが使い易くてよいかもしれませんね。
(C++.netでも使えるけど、ディホルトの設定では使えなかったりするしorz...)
フリーのCビルダーも良いかもしれません。なにより結果に最短なものがベストです。
それでしばらく学習した後に、DirectXが良いと思われます。
C++.netはここの板的にはDirectX以外の用途には使えません(w 怒られるかな@rz
235:名前は開発中のものです。
04/04/19 22:33 4HaR2ypQ.net
C自体が全く分からないというけどほかの言語はどうなのかな
いまだと無料でつかえる言語たくさんあるので言語自体が不慣れならそちらからはいるといい
そしてゲーム作るのにC++じゃないということはない
236:新人PG
04/04/19 23:10 rjSD3Om1.net
お久しぶりです。ただいま仕事から戻りました。
ぶっちゃけ仕事忙しすぎて、あんまり手がかけれない状態に陥ってますが、勘弁してください・・・(汗
>>親父PGタン
今言語設計に取り掛かっていて、前に出して頂いた目的コードを参考にしながら中間コードの出力を想像している所です。
似非Java言語仕様となっています。
構造化フローOnlyで、型チェックは今のところ省いています。
連休までには動くものができると思いますが、それまではソース&仕様書の断片を小出しにしていきます。
ただ、今の目的コードの草案だけではちょっとムリポです。ある程度作ると、いろんな面が見えてくるので
そこで突っ込みをいれてみます。(こんな感じの進行で行くんですよね?w)
環境Win2K + VC++7.0 + STL + Boostてな環境です。
ソース公開するつもりなので穴があったら突っ込んでください・・・。>コンパイラ職人
237:親父PG
04/04/19 23:31 HvqP5Z0m.net
>>236
お疲れ様、お久しぶりです。
進行についてはそれでOKです。というか付き合って頂いて有難うです。
こちらの仮想エンジンは固定長トークンを随時実行していくというタイプになります。
あまり賢いとはいえません(orz...
CPUコードのようなイメージで、命令にはいろいろな「バリエーション」を選択できます。
とりあえず基本的な制御構造の部分を決めていきましょう。
「命令」トークンの価決めが必要ですね。取り合えずNOPは90Hで(謎
Windowの部分が完成したら一旦UPして見てもらおうと思います。
プラットフォームしかできていないので、大掛かりな割にはしょぼいのですがorz...
238:とおりすがりの親父PG
04/04/20 17:51 UA9bY4ln.net
取り急ぎトリガー構造体
TYPE 1 48byte DataString
struct stScriptTcodeA {
unsigned short ;//S/N シナリオシリアル
unsigned short ;//ID 番号
unsigned char MainCodeToken;//このテーブルの主な役割を示す
char Enable;//この値が-1の場合シナリオエディタを使ってコンパイルされていない 0:disenable 1:enable
unsigned char PAtype;//パラメーターAの指している場所、使われ方等をコードで示す
unsigned char PBtype;//パラメーターBの指している場所、使われ方等をコードで示す
int ParameterA;//パラメータA
int ParameterB;//パラメーターB
short SubParameterA;//パラメータA sub
short SubParameterB;//パラメータB sub
unsigned char CalcToken;// 計算式
char BoolToken;// トリガー条件 真の時 偽の時 =0 !=0 - + -1 +1 2の倍数
unsigned char ActToken;//アクション番号
unsigned char ParameterType;0: int*3 / 1: short*6 (HIWORD)(LOWORD)..
int Callparametar1;//パラメーター
int Callparametar2;//
int Callparametar3;//
int Resaved; //(this Area Used System Work) 使用者がワークエリアとして使う
int Resaved; //(this Area Used System Work)
short Resave01;
unsigned char CountToken トリガーをまとめて使う場合、いくつあるか?
unsigned char EndofToken 命令の終わりコード 終わり・次がある
};
239:231
04/04/20 19:09 558xdrhW.net
>>親父PGさま
なるほど。Cの勉強をしようと思ったとき、「よくVisualCでしか動かないコードを載せているサイトや本が多い」
と学校の先輩に言われたのでVisualCを買おうかと思ったのです。
で、GCC(Dev-C)を使っているのは、これはなんとなく……。
いろいろありがとうこざいます。
>>235さま
今までDelphiを使っておりました。ただ、学校(工業高校です)の勉強でCを使うらしいし、Cは実行速度が速い
と聞いていたのでこの際Cもやってみるか、と思った次第です。
240:名前は開発中のものです。
04/04/20 19:18 svF6Tlnf.net
>>239
***すれ立てるまでもない質問はここで 第53刷***
スレリンク(tech板)l50
241:親父PG
04/04/20 20:05 EEGw5Gpv.net
>>239
Delphiをお使いですか、私も愛用しております。私はツール類はDelphiを使って作成しています。楽ですからね^^;。。。
最近は、「造りたいもの」に合わせて言語を使う(選ぶ)傾向があると思いますので。特にVCが必用ということはないと思います。
VCにこだわらなくても慣れて来ると、Cファミリーに属する言語は殆ど理解できるようになりますから(W
また実行速度は学習段階では考えなくても良いと思いますよ。
サイトのサンプルはコピペではなく、意味を理解して使う事が望ましい。ですからVC用に書かれていようが関係ありません。
例をあげるとDelphi用のコードを書いている時に、サンプルはCのソースコードを読むことは沢山あります。
むしろVCという開発環境を使いこなすのは大変かもしれません。それはプログラム言語の学習とはちょっとニュアンスが違います。
MFCやらマネージドクラスやらブーストやらDirectXやらSTLやら(ムニャムニャ
ライブラリの導入一つではまる事はざらにあります(ここがCの柔軟性の負の遺産と思いますがorz...
結論を言えば、慌ててVCにすることはないと思います。VCでしか造れない(造り易い)という目標があれば別ですが。
>>240
お気遣い有難うございます(^^*/
今日は久しぶりの早い帰りです。明日も昼からなのでじっくり取り組もうと思います。
今作っているWINDOWですが、マウスに合わせてウインドがグリグリ動いて、ちょっと嬉しい。
マウスを激しく動かしたり、ビューポート外でマウスを放したときの処理など、エラー処理と
(その危険な)コードを探すのに苦労しました(死
危険なメモリアクセスが(滝汗
しかしポインターって便利ですね。
蛇足ですが構造体にSTLのポインターって定義できるんですよね。
実行時にNEWでSTLを実体化してドカドカデータ−をぶち込んで使っています。
さて、呆れられるまえに親父日記は終了します。
242:新人PG
04/04/21 01:25 eYcWXse+.net
お疲れ様です。
>>親父PG
まずは、Windowの基盤完成おめでたうございます。
DirectXの穴(デバイス消失など)も考えられて作られているようで、素晴らしいと思います。
これはゲーム完成が楽しみですね。
トリガデータ設計ありがとうございます。やはり目的コードが決まるとモヤモヤが消えます。
現在構文解析ツリーの設計と言語設計の矛盾を小一時間(いや、もっとか)問い詰めています。
大学の教科書見て復習しながらの実装です・・・(汗
あと、まとめページの方を明日ぐらいに更新しておきます。更新ペース遅くてスマソです。
#余談1
主観ですけどVCよりも使いやすいC/C++環境って無かったです。
MFCの使い方から教える入門書が悪い気がしますw
個人的には
コンソール(C++の文法と標準関数覚える) → 猫でも → MFC入門(斜陽ですけど)
で十分な気がするんですけどw つーか.NET覚えてWindows.Form覚え(ry
#余談2
Windowsでゲームを作る上で、C#.NET + DirectXも選択肢に入る時代になったんですね・・・。
思った以上に高速に動作します。MSがパフォーマンスを最も重視して設計したと
豪語していますが、流石に言うだけのことはありますね。
243:名前は開発中のものです。
04/04/21 01:50 cLgAiJmm.net
つーかネックになる場所は大概描画方面だったりするので
その辺はDirectX使ってるのなら問題になることはないでしょう
インタプリタの旧VBでもネックになることもよほどのレベルじゃない限りまずありません
むしろ中間言語系は同一バイナリでも最適化できるのもポイントです
たとえばjavaの1.4.2は従来バージョンのアプリも大幅に高速化しています
これはSSEを使っているためです
静的コンパイラの最適化はたしかにいいのですが動的に環境に適応する
コンパイラ(hotspot技術)というのも使うかどうかはともかく遊び倒す
テーマとして面白い物です
ちとふるいですが
URLリンク(www.geocities.jp)
もちろん、今の最適化はこのころからくらべてかなりよくなっています
244:親父PG
04/04/21 04:38 OH77B7oH.net
>>242
おつかれさま。 >現在構文解析ツリーの設計と言語設計の矛盾を小一時間(いや、もっとか)問い詰めています。
^^;復習してまでやってもらえて感謝です。
配列は会社で暇な時に紙に書いて構築しておりました。32Byteに収めたかったんですが、48byteになってしまいました。
あれだけではわけ解らないと思いますので補足説明しますね。
unsigned char MainCodeToken;//このテーブルの主な役割を示す
これはズバリそのままで、「計算」とか「IF文」「Swith文」「価のセット」など仮想VMに命令を伝えます。
char Enable;//この値が-1の場合シナリオエディタを使ってコンパイルされていない 0:disenable 1:enable
このー1というのはマップコンパイラ以外のツール(MAP(地形)にトリガーを埋め込むツール)などで
書き込まれたデータ−という意味です。 これを見つけたコンパイラは処理を追加義務が発生します。
命令コードは「地形MAPツールによって追加されたトリガ」になります。
unsigned char PAtype;//パラメーターAの指している場所、使われ方等をコードで示す
次のパラメータがFGのINDEX番号なのかMAPの座標なのか価なのかを表します
またINTをつかうかShortを使うか両方つかうかを識別します。
INT ,Short , (Short+INT), Short:INT , Short,(HIWORD)Short,LOWORD(Short)
unsigned char CalcToken;// 計算式
2つの価を同計算計算するか示します + - and or not > < >= <= ,INTかShortか両方か
パラメーターが複数ある場合(PAtypeで指示)、もここのコードで判断します。
同じ[+]を表すコードでも両方を加算するトークン用、片方だけのトークン用があります
パラメーターが複数ある場合、処理に引き渡す引数としても使えます。
char BoolToken;// トリガー条件 真の時 偽の時 =0 !=0 - + -1 +1 2の倍数
-64〜+64までは価として(6ビット)最上位ビットが 真の時 偽の時を表します
7ビット目がONの場合ユニークな条件を設定します65〜127 -65〜-127
00000000 は計算結果が0の時 真なら
10000000 は計算結果が0の時 偽なら
00000001 は計算結果が1の時 真なら
01000000 ユニークな条件(いまは考えていないorz)
245:親父PG
04/04/21 10:08 OH77B7oH.net
>>243
コンピューターの高速化がもたらした波ですなぁ。
Parlで最初にスカラー型を知った時は驚きでした。インタプリタできる芸当ですね。
ところで...
じっくり取り組もうとか宣言しているにも関わらず、パコの前で気絶してしまいましたorz...
246:名前は開発中のものです。
04/04/21 11:34 5LzXW3vc.net
×disenable
○disable
247:名前は開発中のものです。
04/04/21 14:14 y1g5Kw7w.net
×Parl
○Perl
248:親父PG
04/04/21 14:17 iaRnmK/d.net
>>246 247
orz....
249:親父PG
04/04/21 19:09 iaRnmK/d.net
新人PGさんへ
スクリプトを組むに当たって構造設計のお話を致します。
定義 スクリプト言語の本システムにおける位置付け
本システムVMにおいて動作命令を出す事が可能である。
条件文は主にトリガーテーブルに置かれ、実行命令文をわけて管理される(トリガーTBLと実行データ-)
アイドルは何処に書かれる?
アイドル状態を想定する必要は無い。スクリプトは処理が終わると自動的にアイドルモードに切り替わる。
必要がある場合にVM側よりトリガーが引かれ実行される
MAP座標
ユーザーの入力 -トリガ>トリガーTBLを検索 >実行>VMに実行部(が書かれたシナリオ上の番号を渡す)
ボタンを押した時の処理
現在考えているのはこのようなタイプの静的なスクリプト処理です。(一部引数を動的に処理)
ここからが相談ですが、動的に処理をしたほうが好ましい内容があると思われるのですが、何か希望がありますでしょうか?
変数、配列 などがまず考えられます。
具体的な実装方法は考えていませんが、「外部プログラムの起動」やゲーム特有の処理が必要な場合、DLLの読み込みなども考えられます。
------------------------------------------------------------------------------------------------
余談ですがツクールXPの紹介HPを見ました。あまり細かいところまでは判らないですが、
MAP(地形)が3階層 画面サイズが640*400 MAPツール(チップ編集による地形作成)
スクリプト機能 暗号化機能などがあるようです。 暗号化機能というのは注目すべきアイデアかもしれませんね。
MAPツール(チップ編集による地形作成)については考察が必要かもしれません。
250:親父PG
04/04/21 19:57 iaRnmK/d.net
新人PGさんはご存知かもしれませんが、MAPツールについて確認の為に書いておきます。
ゲームの画像の伝統的なやり方として、チップデータ-によるMAP作成という手法があります。
これは決められたサイズ8*8 16*16単位で書かれたチップデーター(画像)を並べて画像にしていくというのがあります。
これはコンシュマーのマシンが1キャラをハードウェア的にそのように扱っていた為に、行われてきた伝統的なやり方です。
同じパターンの使いまわしができるという点で、手動でデータの圧縮しているという側面がありました。
PCエンジン開発用のPC98用ツールが広く出回って、色々なゲームの開発用に使われた事は結構有名(orz...
さてツクールでは、そのような方法とおぼしき方法が使われているようです(違っていたらごめんなさい)
DirectXでは画像を細かく分割して扱うメリットはないので、親父システムではこのような方法はサポートしません。
地形画像データ-はJPGで(笑
最近の(とはいってもかなり昔からだけど)地形ツールは論理的な地形データをツールによって並べると、
境目には自動的に埋められていくようです。平平山山<こういうデータ-の場合平^山の間に自動的に間を補完する画像データ-が置かれるようになっています。
こういうツールも1から組み立てると大変ですねぇ。とりあえず最初は1枚画でいいかなorz....
251:名前は開発中のものです。
04/04/21 20:06 cLgAiJmm.net
PCGデータ使った方がサイズ小さいというのはともかく
Jpegだとカラーキーやアルファ扱うとき困りませんか?
重ね合わせとか普通しますし
それにハイドライドやFFの森のようなものをやる場合どうします?
252:231
04/04/21 20:44 uRL7H9Xs.net
>>親父PGさま
長い解説ありがとうございます。
>>サイトのサンプルはコピペではなく、意味を理解して使う事が望ましい。
肝に銘じておきます。
取り敢えずDev-Cで頑張ってみようと思います。いつかそれなりにプログラムが書けるようになったらここに戻ってこようと思います。
>>新人PGさま
わざわざありがとうございます。
253:親父PG
04/04/21 23:39 OH77B7oH.net
>>251
いろいろと方法があります。アンチエイリアスなどが必用な場合を「除いて」単純なクロマキーであれば
|アンド演算で抜けます。また全体を半透明にする場合はα値を偽造します。
うまくいかなかったらPNGでorz..
>>231
いつでもどうぞ^^ 前向きな書き込みであれば、歓迎しますよ。
254:新人PG
04/04/22 00:09 GFAvdjZl.net
>>243
色々意見ありがとうございます。
あまり大それた物を期待してもらうと逆に恐縮なんですけど、自分の出来る範囲で頑張っていこうかと思います。
>>親父PGタン
一応まとめの方に、トリガデータを載せました。
僕のアタマが悪いのか、完全理解が出来てません。また聞きます(汗
>>スクリプトの構造設計
・アイドル処理は要らない
同意&同感です。こちらはトリガ処理・シーン処理記述のみを書かせます。
しかし未だにMAP座標にトリガーを持たせるのにはちと抵抗があります・・・。
・静的か動的か
変数、配列はサポートします。
DLL読み込みやその他プラグイン読み込み等は、今は考えてないです・・・。
とりあえず、第1段階完成後に考えます。
・チップデータの地形
実はあんまり好きくないです。
本当は3Dで臨場感のあるタイプのが好きなのですけど、難しい=親父PGタンが大変 なので
今回はアリかななんて思っています。
まあ、チップも一枚絵も対応すると言う事ならば、チップで組んだほうが両対応で良いと思いますけどね。
255:親父PG
04/04/22 00:10 cy5y1emu.net
>>新人PG様 まとめページ有難うございます。
いくつか修正点がありますので書いておきますね。
ParameterA パラメータ左辺値? 2
ParameterB パラメータ右辺値? 2
意味のコメントはそれであってますよ^^
サイズは4です。
CalcToken 計算式?? あまり良く分っていない・・・
unsigned char CalcToken;// 計算式
2つの価(ParameterA ParameterB)
をどのように計算するか示します + - and or not > < >= <= ,INTかShortか両方か
パラメーターが複数ある場合(PAtypeで指示)、もここのコードで判断します。
同じ[+]を表すコードでも両方を加算するトークン用、片方だけのトークン用があります
パラメーターが複数ある場合、処理に引き渡す引数としても使えます。
例 10は足し算 A+B
11は足し算 A'A+B'B 二つの価を上位ビット下位ビットで解釈
12は足し算 A'+B' サブパラメーターで演算
例 21は比較 A?B
22は比較 A?B A'?B'
23は比較 HIWORD(A)HIWORD(B) LOWORD(A)LOWORD(B)
こんな感じです。
ParameterType ?
以下の3つのintの分割方法を示します。Short *6とか
解らない点がありましたらどしどしご質問ください。
256:名前は開発中のものです。
04/04/22 00:10 hQ7KmIOV.net
>>253
いや、jpegってことはピクセルが綺麗に抜けないってところが問題なわけで
ブロックノイズ単位で色が抜けるのはなんかいやだ
ま、pngでいいんじゃない?
αももてるし、パレットもあるし
ところでハイドライドとかの森って実現できるの?
キャラのY座標によって手前に行ったり奥に言ったりするようなオブジェクトなんだけど
257:親父PG
04/04/22 00:19 cy5y1emu.net
>しかし未だにMAP座標にトリガーを持たせるのにはちと抵抗があります・・・。
キャラがある座標にいどうする。
MAP上にはトリガーがあるという情報しかありません
そこで初めてMAPからトリガーテーブルに対して座標引数をもったトリガーが呼ばれます。
と、いっても実際にシステム側からすれば、一致する座標のトリガーテーブルを検索して探すだけなんですけども。
(これが理由で命令コードにMAPから呼ばれた命令)というのがあるわけです。
検索速度を上げるためです。
スクリプト側から見れば、座標データ−さえセットしておけば、システム側から勝手にトリガーを
引いてくれる事になります。
チップデータ−を内部でサポートするというとは、実際にチップINDEXを持って使用時に組み立てる作業を
PG内部でおこなう事をいいます。今回このようなことはおこないません。
258:親父PG
04/04/22 00:30 cy5y1emu.net
>>256
おお256を踏みましたね。このスレも無事に1バイトを超えました(W
ご心配のJPGデータですが、内部に読み込むとARGB各8ビットというデータ−に変わります。
この時点でαは全ピクセルにFFが割り当てられています。
このFFの価を変化させてあげると半透明になります。
実はこのようなことを心配しなくても、2つのテクスチャはちゃんと抜くことができます。
αが意味を持つのはエッジ処理です。全体に薄くしたり特定色(黒)を透明にする事は特に
PNGを使う必用は無いのです。
綺麗にエッジを抜く場合はαデータ−を持ったPNGが有利ですが。それほど必用でないものや
最初からスクリーン<−フォトショップのレイヤー属性のあれ(or演算)
であればαデータ−なしでもそれほど問題になりません。
要するに使う場所と目的によって決定されます。
259:親父PG
04/04/22 23:37 cy5y1emu.net
>>新人PGさんへ
>しかし未だにMAP座標にトリガーを持たせるのにはちと抵抗があります・・・。
もしかして、地形MAPにあの48バイトのトリガーデータを持つと、お考えですか?
もしそうなら違いますよ。地形データには「トリガーを引いて」という意味の1バイトデータしか使いません。
眠い、眠いです。ツールにバグがあった...ナオサナケレバorz...
とある会社のデータ−ベースに製品シリアルに「ハイフンと全角ハイフン」が混じって登録されているのを発見。
直すのは不可能との事....(メインフレーム上にあり、直すのにんんんん万かかるらしい)激しく鬱ですorz...
260:名前は開発中のものです。
04/04/22 23:42 q2BwaruN.net
ウィンドウ見せてクリ
261:新人PG
04/04/23 00:03 zEfEFbHL.net
>>親父PGタン
お疲れ様です。
メインフレームは触った事ないんで良く分らないですが、コンバータ組むぐらいじゃダメなんでしょうね・・・きっと。
>もしかして、地形MAPにあの48バイトのトリガーデータを持つと、お考えですか?
>もしそうなら違いますよ。地形データには「トリガーを引いて」という意味の1バイトデータしか使いません。
いえ。トリガーを変更した場合、直接は関係なさそうな地形MAPもデータを作りなおさなきゃいけないのでそう思いました。
ツールが補完するとしても、地形MAP編集ツール等がトリガーの事を気にしなくてはいけないデータ構造はちょっと・・・。
地形MAPは地図情報のみを扱う事にすると良いのでは?、と思ったのです。
言語設計なのですけど、一連のシーンを1関数として定義していきます。
吉里吉里のスクリプトを大いに参考にさせて頂いています、が、そこまでの汎用性は無いです。
言語上に機能として持たせたい物で、レイヤー・ウィンドウ管理、外部ファイル読み込み、がありますがどうでしょうか?
(特に外部ファイル読み込みは静的か動的かの話題なんですけど・・・)
262:親父PG
04/04/23 00:05 nZvvFTd4.net
>>260
まだデザインなど適当ですがこんな感じです。
URLリンク(www02.so-net.ne.jp)
今 標準的なメッセージ表示用のものを造っているところです。
OKボタンは左上のものが入ります
ツールのバグでいま表示できていませんorz...
263:親父PG
04/04/23 00:11 nZvvFTd4.net
>>261
おつかれさまー
メインフレームの件は私もそう思ったんですけどね。そういう簡単なものではないらしい
未知の世界(デッカイTAPE装置が動いている世界...
MAPの話
例えばMAPにトリガーが無いと仮定すると、
キャラが移動する毎にトリガーテーブル−のサーチが必要になります。
これは効率が悪いので、MAP側に「探せ!」というコードを埋め込むわけです。
外部ファイル読み込みは 動的に処理しないとあまり意味はありません。
固定長のトリガーテーブルは後ろに付け足しできるなど、扱い易い点はあると思いますけどね。
264:親父PG
04/04/23 19:05 nZvvFTd4.net
新人PGさんへ
豆乳システムの命令リファレンスです
URLリンク(tonyu.kake.info.waseda.ac.jp)
これを参考に実行部のほうも定義していきますね。
265:親父PG
04/04/25 16:09 F+nBnVBh.net
まだデザインなど適当ですがこんな感じです。
URLリンク(www02.so-net.ne.jp)
文字出力が出来ました。
このウインドは全角で24文字程度の出力用です。
文字量が増えた時は何もしませんorz...
スクロール機能を備えたウインドはこの次に作成します。
ところで皆さんは文字列用のライブラリは何をお使いですか?
(特に可変文字列など)
私はSTLのbasic_string を使っておりますが^^
266:親父PG
04/04/25 16:10 F+nBnVBh.net
ageてしまったorz.........................
267:親父PG
04/04/25 16:25 F+nBnVBh.net
>>新人PGさんへ 今、ある下位コマンドです。設計の参考にしてください。
const hOBJECT _mesNewOBJWin( int objtype,D3DPRIMITIVETYPE stype,unsigned ten ,byte* pstruc ,int zindex);//Winsowの登録(OBJを呼び出し)
const hOBJECT _mesNewOBJ( int objtype,D3DPRIMITIVETYPE stype,unsigned ten ,byte* pstruc );//OBJの登録
const hOBJECT _mesNewOBJ( int objtype,char* texfilename ,int usealpa);//テクスチャの登録
const hOBJECT _mesNewOBJ( int objtype ,float x,float y ,float z );//四角などの登録
const hOBJECT _mesNewOBJ( int objtype ,float x,float y ,float z ,D3DLIGHT9* );//ライトの登録
const hOBJECT _mesNewOBJ( int objtype ,float x,float y ,float z ,float w,float h,float r );//空間の登録
const hOBJECT _mesNewOBJ( int objtype ,float D3Dfontsize, char* outputtext ,int D3Dfontnumber );//フォントの登録
void _mesVirePortTextureSet();
int _mesViewPortProfileLoad(char* datfilename );//ViewPortの切替 セッテイングファイルの読み込み
int _mesViewPortProfileLoad();//ViewPortの切替 セッテイングファイルの切替
int _mesLoadTextureforProfile();//テクスチャファイルを一気に読み込む関数
int _mesMakeButtonforProfile();//ボタンを貼り付ける□を作成する
int _mesSetButtonText( dBOption* pButtonData ,char* newtext);
int _mesSetButtonText( int btnumber,char* newtext);//ボタンのテキストを変更する
int _masMakeButton(int btnumber ,dBOption* dbt,dRECT* rect,int zindex);//ボタンを作成する
int _mesMovingOBJ( hOBJECT,int time ,float x ,float y ,float z ,BOOL sw );//objの移動
int _mesMovOBJ( hOBJECT handle,int time ,float x ,float y ,float z ,BOOL sw );//objのSTOP移動
268:親父PG
04/04/25 16:26 F+nBnVBh.net
int _mesScaleOBJ( hOBJECT handle,int time ,float x ,float y ,float z ,BOOL sw );//objの拡大縮小
int _mesShowOBJ( hOBJECT handle, int time );
int _mesHideOBJ( hOBJECT handle, int time );
int _mesSetObjectOutputText( hOBJECT handle,float x,float y,float z,float fontsize=FONT_NORESIZE,const char* outputText =NULL );
int _mesDeleteOBJ( hOBJECT handle, int time );
int _mesSetWindowPos(unsigned int nWin ,float x,float y ,float z);//Moveコマンドを一斉に発行する_mesmoveの上位コマンド
int _mesSetTexture( unsigned int taget,unsigned int texnumber ,unsigned int coindex =0);
int _mesSetArea( hOBJECT tagetA,hOBJECT objnumber,unsigned int _incommand_=0,unsigned int _outcommand_=0,unsigned int _hitcommand_=0 );
int _mesSetObjectStatus1( hOBJECT handle,OBJSTATUSFORMAT _format_ );//
int _mesFontColorChange( hOBJECT handle,float r,float g,float b );//FONTに対してのみ有効 即対応型
int _mesFontSizeChange( hOBJECT handle,float _fontsize_ );//FONTに対してのみ有効 即対応型
void ClearALLOBJ_();
hwin _mesCreateWindow(unsigned char WinType ,short X,short Y);
void _mesDeleteWindow(int hwin);
変更・追加はありますorz...つぎはぎだらけなのがばれてしまうソースですな(汗
269:名前は開発中のものです。
04/04/25 17:29 TuLiLdfJ.net
>>265
std::string でお茶を濁してまつ
270:新人PG
04/04/26 00:37 RHLEfjhQ.net
公言した連休まで一週間しかないYO!
先に謝っておきます。多分動くもの、できません・・・。
Boostのspiritを使いつつ、字句&構文解析を頑張って作っているところです、が、なかなか思うように進んでおりません。
言語仕様ですが、まだ公開できる段階ではありません(汗
最終形は似非C言語+謎の独自予約語と思って頂くとわかりやすいかも知れません。
出来たところ
・EBNFの基幹部分(やっと終わった・・・)
・演算部分の字句・構文解析実装
・if文の字句・構文解析実装
出来てないところ
・その他の構文の字句・構文解析実装
・中間コード設計(先にやった方がいいな・・・)
・目的コード設計
・中間コード出力実装
・中間コード解析実装
・目的コード出力実装
・その他ドキュメントなど・・・
全然出来てませんな・・・。早く出来るなんて嘘こきましたがもうちょっと時間を下され・・・。
271:親父PG
04/04/26 00:46 Tu3Nnhfj.net
>>270
お疲れ様。^^
まぁ肩の力を抜いて楽しくいきましょう。
自分で仕様を決めて造るProgramは、楽しくやらないと損ですからね。
力を抜いて頑張ってください。
私の方もWINDOWの拡張に努めています。文字列が入りきらない場合の
文字のスキップ(スクロール)の処理などをやってます。
出来上がった所から少しずつ、先のURLにあぷしていこうと思います。
私事ですが明後日に光が開通します。
勢いでMN8300W買ってしまいましたorz....
272:名前は開発中のものです。
04/04/26 09:31 YvjKmIIw.net
なんか文字の後ろが透過されてないんだけど、
もしかして例のDIB側で合成して、αを使っていないせい?
273:親父PG
04/04/26 12:40 Tu3Nnhfj.net
>>269
スタンダートストリングですか^^
何が何に強いとか特長とかあるんですかね?
C関係は文字ライブラリの種類多すぎorz...
デルファイのようにStringが、すべてカプセル化して1つしかない状態のほうが
シンプルで良いような気もするんですけどね(個人的には)
string.sort() ←こういう事が標準でできるあたりはCも便利なんですが...
>>272
そうではありませぬ。
文字の後ろは可読性を考えて、わざと不透明にしております。
文字は高精度αを使って滑らかに出力しております。
「文字 DIB
|合成(スクリーン)
背景」Tecture このとき背景のαを255←ここを変化させると透過する
ポリゴン
(重ね合わせ)
WINDOWポリゴン 頂点にα設定
(重ね合わせ)
サーフェースカラー
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
2389日前に更新/279 KB
担当:undef