旧鯖時代の雑記です。新しいの。リンク切れに注意。
2007:
12345678910
2006:
123456789101112
2005:
123456789101112
2004:
456789101112
一般公開されたようです。テスト環境構築がめどいので導入は保留。うちのサイトなんてデザイン崩れても関係ありませんし。
確認ありがとうございます。大丈夫ですか。コンテントネコジエーション周りがあるので入れたほうがいいのですけどね。
投稿者: 方位記号 (2006/02/02[Thu] 23:37)
時季的にぎりぎりかなぁ。一応雪かきやってるとこです。塗っていると時季を逃してしまうので見切り発射。しっかり塗ってとかやってると更新頻度が下がるので別に鉛筆書きでもいいじゃないですか。(開き直り)これ自体は結構前に描いていてこれを描いた次の日に雪が積もったという。。。この人がトップ絵に来るのも久々です。元の設定は微塵も残っていませんけど。
コメントはありません。
新幹線代けちって在来線を使ったのですが、いきなり乗り遅れて予定がだめに。なるようになるさといってみたものの乗り次がどうなってるのかよくわからず結果遠回り、さらに時間的な都合で結局新幹線使ってるし。経路の乗り継ぎ情報はしっかりチェックしませう。
コメントはありません。
修羅場が終わったら今度はDirectXです。Feb2006をいじってるのですが、ドキュメントないしどうしたものか。ものより先に文書が出来上がってしまうあれな事態。さてサイトシステムの刷新はいつになるやら。
コメントはありません。
今現在作ってるライブラリは人との共同で組んでるの(といっても設計してるのは私ですけど、)ですが、どうも設計を間違えた予感。ていうかよく理解していないものをラップしているので正しいかわかってません。ここで問題はすでに走ってるコードがある点。さてどうしたものか。
コメントはありません。
根本的に座標系を理解していない様子。Direc3D widh 2Dゲームならそれなりの形になったものの3Dとなるとさっぱり。このまま進めても失敗するのは目に見えてるので、書籍でも買ってきますか。問題はManaged DirectXの書籍が皆無な点。ていうかサンプル、変なフレームワーク使わないで、自前で実装してください。参考になりません。
コメントはありません。
int? i = ( boolean ) ? new int() : null;このようなコードはコンパイルが通りません。このような動きをさせる場合int? i = ( boolean ) ? (i=new int()) : null;とします。仕様的に正しいかは不明。
コメントはありません。
詳しくはぐぐってもらうとして(ぉ)、VS2005はデバッグ内容をグラフィカルに表示する機能を備えています。で、これ自体は簡単に自作できるわけですが、シリアライズできないクラスへの対応がいまいちわかりません。今のところ必要な情報を持たせたシリアライズ可能なクラスを、表示したいクラスのプロパティとしているのですが。。。継承が深くなるとアクセスしづらくなりますし、どうしたものかと。
コメントはありません。
VS2005のデバッガにはビジュアライザと呼ばれる機能があります。詳しくはMSDNを見ていただくとして、まぁクラスの内容をダイアログに表示する機能ですね。リンク先にあるとおり非常に簡単に作れるのですが、こいつはシリアライズ可能なクラスしかデフォルトのVisualizerObjectSourceでは使うことができません。これを解決するにはVisualizerObjectSourceを自作すればよいのです。
自作するといっても「シリアライズ可能なクラス」という前提条件は変わりません。そこで一度クラスを構成する最低限の情報を持つシリアライズ可能なプロクシクラスを作成します。クラスそのものではなくこいつをデバッガに渡し、VisualizerObjectProviderはこれを元にクラスを復元すればよいのです。
public class Target {
// シリアライズできないようなメンバ
[Serializable]
struct Proxy {
public Proxy( Target target ) {
// 必要な情報をとってくる
}
}
}
public class MyObjectSource : VisualizerObjectSource {
public override void GetData( object target, System.IO.Stream outgoingData ) {
// 送られてきた Target のインスタンスを Proxy に変えて書き込み
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf
= new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bf.Serialize( outgoingData, new Proxy((Target)target) );
}
}
とまぁこんな感じで実装するわけです。ちなみにビジュアライザでデータを編集し適用することも可能ですが、そこは調べてないのでまたの機会に。
コメントはありません。
C#は明示的にメモリの開放ができないわけで、ゲームを作る際はこの辺を注意しなければいけない(GCのコストはそれなりに大きい)のですが、現在作ってるライブラリはすっかりこのあたりを忘却。全体を見直すはめに。。。
コメントはありません。
最近すっかりなくなってます。なんとかしないと。。。
コメントはありません。
次のようなコードを書いた場合Diffuseが設定されません。バグかなぁ。
Material mtrl = new Material();
mtrl.Diffuse = System.Drawing.Color.White;
System.Diagnostics.Debug.WriteLine(
string.Format("Diffuse[{0}, {1}, {2}, {3}]",
mtrl.Diffuse.A, mtrl.Diffuse.R,
mtrl.Diffuse.G, mtrl.Diffuse.B) );
/* 出力
* Diffuse[0, 0, 0, 0]
*/
DiffuseColorは問題なく動く模様。Microsoft.DirectX.dllのバージョンは2.0.0.0でランタイムバージョンはv2.0.50727。
コメントはありません。
ノートでグラボに負荷をかけるコードを走らせると処理落ちするのですが、なんでしょう。はじめはガーベッジコレクタを疑ってみたものの不規則すぎますし、熱暴走かなぁ。
コメントはありません。
別のアプリ/サービスが定期的にCPU使ってるのが原因?ブラウザを落としたら幾分か緩和されました。しかしながら依然として原因は不明。
コメントはありません。
自前ライブラリをはずして直にMDXたたくコードを書いたら件の処理落ちの頻度は下降(弊社比)するもやっぱり処理落ち。まぁ例外処理省いていたりするので当然といえば当然ですか。GCが怪しい(というよりほかに原因を思いつかない)のですけど、GCって起動するたびにCPUパワー100%持ってきますかねぇ。何かGCじゃない何かが動いてる気も。MDX v1.xに変えて.Net 1.1との比較でもしてみますかねぇ。
コメントはありません。
結果は同じ。さてどうしたものか。。。
コメントはありません。
待機ループにSleep(1)をいれると激減。もう意味わかりません。
コメントはありません。
Copyright(C)方位記号
お久しぶりです。新しい物好きなので人柱やってますwデザイン大丈夫ですよ〜。
投稿者: 芝やん (2006/02/02[Thu] 22:55)